text: /******/ (() => { // webpackBootstrap
  /******/ 	var __webpack_modules__ = ({
  
  /***/ "./node_modules/core-js/internals/a-function.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/internals/a-function.js ***!
    \******************************************************/
  /***/ ((module) => {
  
  module.exports = function (it) {
    if (typeof it != 'function') {
      throw TypeError(String(it) + ' is not a function');
    }
  
    return it;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/a-possible-prototype.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/internals/a-possible-prototype.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  module.exports = function (it) {
    if (!isObject(it) && it !== null) {
      throw TypeError("Can't set " + String(it) + ' as a prototype');
    }
  
    return it;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/add-to-unscopables.js":
  /*!**************************************************************!*\
    !*** ./node_modules/core-js/internals/add-to-unscopables.js ***!
    \**************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  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, {
      configurable: true,
      value: create(null)
    });
  } // add a key to Array.prototype[@@unscopables]
  
  
  module.exports = function (key) {
    ArrayPrototype[UNSCOPABLES][key] = true;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/advance-string-index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/internals/advance-string-index.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var charAt = (__webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt); // `AdvanceStringIndex` abstract operation
  // https://tc39.es/ecma262/#sec-advancestringindex
  
  
  module.exports = function (S, index, unicode) {
    return index + (unicode ? charAt(S, index).length : 1);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/an-object.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/an-object.js ***!
    \*****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  module.exports = function (it) {
    if (!isObject(it)) {
      throw TypeError(String(it) + ' is not an object');
    }
  
    return it;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-fill.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/internals/array-fill.js ***!
    \******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); // `Array.prototype.fill` method implementation
  // https://tc39.es/ecma262/#sec-array.prototype.fill
  
  
  module.exports = function fill(value
  /* , start = 0, end = @length */
  ) {
    var O = toObject(this);
    var length = toLength(O.length);
    var argumentsLength = arguments.length;
    var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
    var end = argumentsLength > 2 ? arguments[2] : undefined;
    var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
  
    while (endPos > index) {
      O[index++] = value;
    }
  
    return O;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-includes.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/array-includes.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); // `Array.prototype.{ indexOf, includes }` methods implementation
  
  
  var createMethod = function createMethod(IS_INCLUDES) {
    return function ($this, el, fromIndex) {
      var O = toIndexedObject($this);
      var length = toLength(O.length);
      var index = toAbsoluteIndex(fromIndex, length);
      var value; // Array#includes uses SameValueZero equality algorithm
      // eslint-disable-next-line no-self-compare -- NaN check
  
      if (IS_INCLUDES && el != el) while (length > index) {
        value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check
  
        if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not
      } else for (; length > index; index++) {
        if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
      }
      return !IS_INCLUDES && -1;
    };
  };
  
  module.exports = {
    // `Array.prototype.includes` method
    // https://tc39.es/ecma262/#sec-array.prototype.includes
    includes: createMethod(true),
    // `Array.prototype.indexOf` method
    // https://tc39.es/ecma262/#sec-array.prototype.indexof
    indexOf: createMethod(false)
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-iteration.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/internals/array-iteration.js ***!
    \***********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
  
  var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js");
  
  var push = [].push; // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
  
  var createMethod = function createMethod(TYPE) {
    var IS_MAP = TYPE == 1;
    var IS_FILTER = TYPE == 2;
    var IS_SOME = TYPE == 3;
    var IS_EVERY = TYPE == 4;
    var IS_FIND_INDEX = TYPE == 6;
    var IS_FILTER_OUT = TYPE == 7;
    var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
    return function ($this, callbackfn, that, specificCreate) {
      var O = toObject($this);
      var self = IndexedObject(O);
      var boundFunction = bind(callbackfn, that, 3);
      var length = toLength(self.length);
      var index = 0;
      var create = specificCreate || arraySpeciesCreate;
      var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
      var value, result;
  
      for (; length > index; index++) {
        if (NO_HOLES || index in self) {
          value = self[index];
          result = boundFunction(value, index, O);
  
          if (TYPE) {
            if (IS_MAP) target[index] = result; // map
            else if (result) switch (TYPE) {
              case 3:
                return true;
              // some
  
              case 5:
                return value;
              // find
  
              case 6:
                return index;
              // findIndex
  
              case 2:
                push.call(target, value);
              // filter
            } else switch (TYPE) {
              case 4:
                return false;
              // every
  
              case 7:
                push.call(target, value);
              // filterOut
            }
          }
        }
      }
  
      return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
    };
  };
  
  module.exports = {
    // `Array.prototype.forEach` method
    // https://tc39.es/ecma262/#sec-array.prototype.foreach
    forEach: createMethod(0),
    // `Array.prototype.map` method
    // https://tc39.es/ecma262/#sec-array.prototype.map
    map: createMethod(1),
    // `Array.prototype.filter` method
    // https://tc39.es/ecma262/#sec-array.prototype.filter
    filter: createMethod(2),
    // `Array.prototype.some` method
    // https://tc39.es/ecma262/#sec-array.prototype.some
    some: createMethod(3),
    // `Array.prototype.every` method
    // https://tc39.es/ecma262/#sec-array.prototype.every
    every: createMethod(4),
    // `Array.prototype.find` method
    // https://tc39.es/ecma262/#sec-array.prototype.find
    find: createMethod(5),
    // `Array.prototype.findIndex` method
    // https://tc39.es/ecma262/#sec-array.prototype.findIndex
    findIndex: createMethod(6),
    // `Array.prototype.filterOut` method
    // https://github.com/tc39/proposal-array-filtering
    filterOut: createMethod(7)
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-method-has-species-support.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/core-js/internals/array-method-has-species-support.js ***!
    \****************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
  
  var SPECIES = wellKnownSymbol('species');
  
  module.exports = function (METHOD_NAME) {
    // We can't use this feature detection in V8 since it causes
    // deoptimization and serious performance degradation
    // https://github.com/zloirock/core-js/issues/677
    return V8_VERSION >= 51 || !fails(function () {
      var array = [];
      var constructor = array.constructor = {};
  
      constructor[SPECIES] = function () {
        return {
          foo: 1
        };
      };
  
      return array[METHOD_NAME](Boolean).foo !== 1;
    });
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-method-is-strict.js":
  /*!******************************************************************!*\
    !*** ./node_modules/core-js/internals/array-method-is-strict.js ***!
    \******************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  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
      method.call(null, argument || function () {
        throw 1;
      }, 1);
    });
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-sort.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/internals/array-sort.js ***!
    \******************************************************/
  /***/ ((module) => {
  
  // TODO: use something more complex like timsort?
  var floor = Math.floor;
  
  var mergeSort = function mergeSort(array, comparefn) {
    var length = array.length;
    var middle = floor(length / 2);
    return length < 8 ? insertionSort(array, comparefn) : merge(mergeSort(array.slice(0, middle), comparefn), mergeSort(array.slice(middle), comparefn), comparefn);
  };
  
  var insertionSort = function insertionSort(array, comparefn) {
    var length = array.length;
    var i = 1;
    var element, j;
  
    while (i < length) {
      j = i;
      element = array[i];
  
      while (j && comparefn(array[j - 1], element) > 0) {
        array[j] = array[--j];
      }
  
      if (j !== i++) array[j] = element;
    }
  
    return array;
  };
  
  var merge = function merge(left, right, comparefn) {
    var llength = left.length;
    var rlength = right.length;
    var lindex = 0;
    var rindex = 0;
    var result = [];
  
    while (lindex < llength || rindex < rlength) {
      if (lindex < llength && rindex < rlength) {
        result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);
      } else {
        result.push(lindex < llength ? left[lindex++] : right[rindex++]);
      }
    }
  
    return result;
  };
  
  module.exports = mergeSort;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/array-species-create.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/internals/array-species-create.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var SPECIES = wellKnownSymbol('species'); // `ArraySpeciesCreate` abstract operation
  // https://tc39.es/ecma262/#sec-arrayspeciescreate
  
  module.exports = function (originalArray, length) {
    var C;
  
    if (isArray(originalArray)) {
      C = originalArray.constructor; // cross-realm fallback
  
      if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {
        C = C[SPECIES];
        if (C === null) C = undefined;
      }
    }
  
    return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/classof-raw.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/classof-raw.js ***!
    \*******************************************************/
  /***/ ((module) => {
  
  var toString = {}.toString;
  
  module.exports = function (it) {
    return toString.call(it).slice(8, -1);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/classof.js":
  /*!***************************************************!*\
    !*** ./node_modules/core-js/internals/classof.js ***!
    \***************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
  
  var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var TO_STRING_TAG = wellKnownSymbol('toStringTag'); // ES3 wrong here
  
  var CORRECT_ARGUMENTS = classofRaw(function () {
    return arguments;
  }()) == 'Arguments'; // fallback for IE11 Script Access Denied error
  
  var tryGet = function tryGet(it, key) {
    try {
      return it[key];
    } catch (error) {
      /* empty */
    }
  }; // getting tag from ES6+ `Object.prototype.toString`
  
  
  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
    : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback
    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/copy-constructor-properties.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***!
    \***********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js");
  
  var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  module.exports = function (target, source) {
    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 (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
    }
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/correct-is-regexp-logic.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/core-js/internals/correct-is-regexp-logic.js ***!
    \*******************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var MATCH = wellKnownSymbol('match');
  
  module.exports = function (METHOD_NAME) {
    var regexp = /./;
  
    try {
      '/./'[METHOD_NAME](regexp);
    } catch (error1) {
      try {
        regexp[MATCH] = false;
        return '/./'[METHOD_NAME](regexp);
      } catch (error2) {
        /* empty */
      }
    }
  
    return false;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/correct-prototype-getter.js":
  /*!********************************************************************!*\
    !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***!
    \********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  module.exports = !fails(function () {
    function F() {
      /* empty */
    }
  
    F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
  
    return Object.getPrototypeOf(new F()) !== F.prototype;
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/create-iterator-constructor.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***!
    \***********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var IteratorPrototype = (__webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js").IteratorPrototype);
  
  var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
  
  var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
  
  var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
  
  var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
  
  var returnThis = function returnThis() {
    return this;
  };
  
  module.exports = function (IteratorConstructor, NAME, next) {
    var TO_STRING_TAG = NAME + ' Iterator';
    IteratorConstructor.prototype = create(IteratorPrototype, {
      next: createPropertyDescriptor(1, next)
    });
    setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
    Iterators[TO_STRING_TAG] = returnThis;
    return IteratorConstructor;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/create-non-enumerable-property.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***!
    \**************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
  
  module.exports = DESCRIPTORS ? function (object, key, value) {
    return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
  } : function (object, key, value) {
    object[key] = value;
    return object;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/create-property-descriptor.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/core-js/internals/create-property-descriptor.js ***!
    \**********************************************************************/
  /***/ ((module) => {
  
  module.exports = function (bitmap, value) {
    return {
      enumerable: !(bitmap & 1),
      configurable: !(bitmap & 2),
      writable: !(bitmap & 4),
      value: value
    };
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/create-property.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/internals/create-property.js ***!
    \***********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
  
  module.exports = function (object, key, value) {
    var propertyKey = toPrimitive(key);
    if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/define-iterator.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/internals/define-iterator.js ***!
    \***********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ "./node_modules/core-js/internals/create-iterator-constructor.js");
  
  var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js");
  
  var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js");
  
  var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
  
  var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
  
  var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js");
  
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
  var ITERATOR = wellKnownSymbol('iterator');
  var KEYS = 'keys';
  var VALUES = 'values';
  var ENTRIES = 'entries';
  
  var returnThis = function returnThis() {
    return this;
  };
  
  module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
    createIteratorConstructor(IteratorConstructor, NAME, next);
  
    var getIterationMethod = function getIterationMethod(KIND) {
      if (KIND === DEFAULT && defaultIterator) return defaultIterator;
      if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
  
      switch (KIND) {
        case KEYS:
          return function keys() {
            return new IteratorConstructor(this, KIND);
          };
  
        case VALUES:
          return function values() {
            return new IteratorConstructor(this, KIND);
          };
  
        case ENTRIES:
          return function entries() {
            return new IteratorConstructor(this, KIND);
          };
      }
  
      return function () {
        return new IteratorConstructor(this);
      };
    };
  
    var TO_STRING_TAG = NAME + ' Iterator';
    var INCORRECT_VALUES_NAME = false;
    var IterablePrototype = Iterable.prototype;
    var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];
    var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
    var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
    var CurrentIteratorPrototype, methods, KEY; // fix native
  
    if (anyNativeIterator) {
      CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
  
      if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
        if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
          if (setPrototypeOf) {
            setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
          } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
            createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
          }
        } // Set @@toStringTag to native iterators
  
  
        setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
        if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
      }
    } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF
  
  
    if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
      INCORRECT_VALUES_NAME = true;
  
      defaultIterator = function values() {
        return nativeIterator.call(this);
      };
    } // define iterator
  
  
    if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
      createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
    }
  
    Iterators[NAME] = defaultIterator; // export additional methods
  
    if (DEFAULT) {
      methods = {
        values: getIterationMethod(VALUES),
        keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
        entries: getIterationMethod(ENTRIES)
      };
      if (FORCED) for (KEY in methods) {
        if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
          redefine(IterablePrototype, KEY, methods[KEY]);
        }
      } else $({
        target: NAME,
        proto: true,
        forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME
      }, methods);
    }
  
    return methods;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/define-well-known-symbol.js":
  /*!********************************************************************!*\
    !*** ./node_modules/core-js/internals/define-well-known-symbol.js ***!
    \********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ "./node_modules/core-js/internals/well-known-symbol-wrapped.js");
  
  var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
  
  module.exports = function (NAME) {
    var _Symbol = path.Symbol || (path.Symbol = {});
  
    if (!has(_Symbol, NAME)) defineProperty(_Symbol, NAME, {
      value: wrappedWellKnownSymbolModule.f(NAME)
    });
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/descriptors.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/descriptors.js ***!
    \*******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); // Detect IE8's incomplete defineProperty implementation
  
  
  module.exports = !fails(function () {
    // eslint-disable-next-line es/no-object-defineproperty -- required for testing
    return Object.defineProperty({}, 1, {
      get: function get() {
        return 7;
      }
    })[1] != 7;
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/document-create-element.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/core-js/internals/document-create-element.js ***!
    \*******************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var document = global.document; // typeof document.createElement is 'object' in old IE
  
  var EXISTS = isObject(document) && isObject(document.createElement);
  
  module.exports = function (it) {
    return EXISTS ? document.createElement(it) : {};
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/engine-ff-version.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/engine-ff-version.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
  
  var firefox = userAgent.match(/firefox\/(\d+)/i);
  module.exports = !!firefox && +firefox[1];
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/engine-is-ie-or-edge.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/internals/engine-is-ie-or-edge.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var UA = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
  
  module.exports = /MSIE|Trident/.test(UA);
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/engine-user-agent.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/engine-user-agent.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  
  module.exports = getBuiltIn('navigator', 'userAgent') || '';
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/engine-v8-version.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/engine-v8-version.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
  
  var process = global.process;
  var versions = process && process.versions;
  var v8 = versions && versions.v8;
  var match, version;
  
  if (v8) {
    match = v8.split('.');
    version = match[0] < 4 ? 1 : match[0] + match[1];
  } else if (userAgent) {
    match = userAgent.match(/Edge\/(\d+)/);
  
    if (!match || match[1] >= 74) {
      match = userAgent.match(/Chrome\/(\d+)/);
      if (match) version = match[1];
    }
  }
  
  module.exports = version && +version;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/engine-webkit-version.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/core-js/internals/engine-webkit-version.js ***!
    \*****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
  
  var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
  module.exports = !!webkit && +webkit[1];
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/enum-bug-keys.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/internals/enum-bug-keys.js ***!
    \*********************************************************/
  /***/ ((module) => {
  
  // IE8- don't enum bug keys
  module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/export.js":
  /*!**************************************************!*\
    !*** ./node_modules/core-js/internals/export.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
  
  var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js");
  
  var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
  /*
    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
  */
  
  
  module.exports = function (options, source) {
    var TARGET = options.target;
    var GLOBAL = options.global;
    var STATIC = options.stat;
    var FORCED, target, key, targetProperty, sourceProperty, descriptor;
  
    if (GLOBAL) {
      target = global;
    } else if (STATIC) {
      target = global[TARGET] || setGlobal(TARGET, {});
    } else {
      target = (global[TARGET] || {}).prototype;
    }
  
    if (target) for (key in source) {
      sourceProperty = source[key];
  
      if (options.noTargetGet) {
        descriptor = getOwnPropertyDescriptor(target, key);
        targetProperty = descriptor && descriptor.value;
      } else targetProperty = target[key];
  
      FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target
  
      if (!FORCED && targetProperty !== undefined) {
        if (_typeof(sourceProperty) === _typeof(targetProperty)) continue;
        copyConstructorProperties(sourceProperty, targetProperty);
      } // add a flag to not completely full polyfills
  
  
      if (options.sham || targetProperty && targetProperty.sham) {
        createNonEnumerableProperty(sourceProperty, 'sham', true);
      } // extend global
  
  
      redefine(target, key, sourceProperty, options);
    }
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/fails.js":
  /*!*************************************************!*\
    !*** ./node_modules/core-js/internals/fails.js ***!
    \*************************************************/
  /***/ ((module) => {
  
  module.exports = function (exec) {
    try {
      return !!exec();
    } catch (error) {
      return true;
    }
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***!
    \******************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
   // TODO: Remove from `core-js@4` since it's moved to entry points
  
  __webpack_require__(/*! ../modules/es.regexp.exec */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var SPECIES = wellKnownSymbol('species');
  var RegExpPrototype = RegExp.prototype;
  
  module.exports = function (KEY, exec, FORCED, SHAM) {
    var SYMBOL = wellKnownSymbol(KEY);
    var DELEGATES_TO_SYMBOL = !fails(function () {
      // String methods call symbol-named RegEp methods
      var O = {};
  
      O[SYMBOL] = function () {
        return 7;
      };
  
      return ''[KEY](O) != 7;
    });
    var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
      // Symbol-named RegExp methods call .exec
      var execCalled = false;
      var re = /a/;
  
      if (KEY === 'split') {
        // We can't use real regex here since it causes deoptimization
        // and serious performance degradation in V8
        // https://github.com/zloirock/core-js/issues/306
        re = {}; // RegExp[@@split] doesn't call the regex's exec method, but first creates
        // a new one. We need to return the patched regex when creating the new one.
  
        re.constructor = {};
  
        re.constructor[SPECIES] = function () {
          return re;
        };
  
        re.flags = '';
        re[SYMBOL] = /./[SYMBOL];
      }
  
      re.exec = function () {
        execCalled = true;
        return null;
      };
  
      re[SYMBOL]('');
      return !execCalled;
    });
  
    if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || FORCED) {
      var nativeRegExpMethod = /./[SYMBOL];
      var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
        var $exec = regexp.exec;
  
        if ($exec === regexpExec || $exec === RegExpPrototype.exec) {
          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
            // The native String method already delegates to @@method (this
            // polyfilled function), leasing to infinite recursion.
            // We avoid it by directly calling the native @@method method.
            return {
              done: true,
              value: nativeRegExpMethod.call(regexp, str, arg2)
            };
          }
  
          return {
            done: true,
            value: nativeMethod.call(str, regexp, arg2)
          };
        }
  
        return {
          done: false
        };
      });
      redefine(String.prototype, KEY, methods[0]);
      redefine(RegExpPrototype, SYMBOL, methods[1]);
    }
  
    if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/flatten-into-array.js":
  /*!**************************************************************!*\
    !*** ./node_modules/core-js/internals/flatten-into-array.js ***!
    \**************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); // `FlattenIntoArray` abstract operation
  // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
  
  
  var flattenIntoArray = function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
    var targetIndex = start;
    var sourceIndex = 0;
    var mapFn = mapper ? bind(mapper, thisArg, 3) : false;
    var element;
  
    while (sourceIndex < sourceLen) {
      if (sourceIndex in source) {
        element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
  
        if (depth > 0 && isArray(element)) {
          targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
        } else {
          if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');
          target[targetIndex] = element;
        }
  
        targetIndex++;
      }
  
      sourceIndex++;
    }
  
    return targetIndex;
  };
  
  module.exports = flattenIntoArray;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/function-bind-context.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/core-js/internals/function-bind-context.js ***!
    \*****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js"); // optional / simple context binding
  
  
  module.exports = function (fn, that, length) {
    aFunction(fn);
    if (that === undefined) return fn;
  
    switch (length) {
      case 0:
        return function () {
          return fn.call(that);
        };
  
      case 1:
        return function (a) {
          return fn.call(that, a);
        };
  
      case 2:
        return function (a, b) {
          return fn.call(that, a, b);
        };
  
      case 3:
        return function (a, b, c) {
          return fn.call(that, a, b, c);
        };
    }
  
    return function
      /* ...args */
    () {
      return fn.apply(that, arguments);
    };
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/function-bind.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/internals/function-bind.js ***!
    \*********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var slice = [].slice;
  var factories = {};
  
  var construct = function construct(C, argsLength, args) {
    if (!(argsLength in factories)) {
      for (var list = [], i = 0; i < argsLength; i++) {
        list[i] = 'a[' + i + ']';
      } // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only
  
  
      factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');
    }
  
    return factories[argsLength](C, args);
  }; // `Function.prototype.bind` method implementation
  // https://tc39.es/ecma262/#sec-function.prototype.bind
  
  
  module.exports = Function.bind || function bind(that
  /* , ...args */
  ) {
    var fn = aFunction(this);
    var partArgs = slice.call(arguments, 1);
  
    var boundFunction = function
      /* args... */
    bound() {
      var args = partArgs.concat(slice.call(arguments));
      return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
    };
  
    if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
    return boundFunction;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/get-built-in.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/internals/get-built-in.js ***!
    \********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js");
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var aFunction = function aFunction(variable) {
    return typeof variable == 'function' ? variable : undefined;
  };
  
  module.exports = function (namespace, method) {
    return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/get-iterator-method.js":
  /*!***************************************************************!*\
    !*** ./node_modules/core-js/internals/get-iterator-method.js ***!
    \***************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
  
  var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var ITERATOR = wellKnownSymbol('iterator');
  
  module.exports = function (it) {
    if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/get-substitution.js":
  /*!************************************************************!*\
    !*** ./node_modules/core-js/internals/get-substitution.js ***!
    \************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var floor = Math.floor;
  var replace = ''.replace;
  var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
  var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; // `GetSubstitution` abstract operation
  // https://tc39.es/ecma262/#sec-getsubstitution
  
  module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
    var tailPos = position + matched.length;
    var m = captures.length;
    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
  
    if (namedCaptures !== undefined) {
      namedCaptures = toObject(namedCaptures);
      symbols = SUBSTITUTION_SYMBOLS;
    }
  
    return replace.call(replacement, symbols, function (match, ch) {
      var capture;
  
      switch (ch.charAt(0)) {
        case '$':
          return '$';
  
        case '&':
          return matched;
  
        case '`':
          return str.slice(0, position);
  
        case "'":
          return str.slice(tailPos);
  
        case '<':
          capture = namedCaptures[ch.slice(1, -1)];
          break;
  
        default:
          // \d\d?
          var n = +ch;
          if (n === 0) return match;
  
          if (n > m) {
            var f = floor(n / 10);
            if (f === 0) return match;
            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
            return match;
          }
  
          capture = captures[n - 1];
      }
  
      return capture === undefined ? '' : capture;
    });
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/global.js":
  /*!**************************************************!*\
    !*** ./node_modules/core-js/internals/global.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var check = function check(it) {
    return it && it.Math == Math && it;
  }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
  
  
  module.exports = // eslint-disable-next-line es/no-global-this -- safe
  check((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) == 'object' && globalThis) || check((typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe
  check((typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self) || check((typeof __webpack_require__.g === "undefined" ? "undefined" : _typeof(__webpack_require__.g)) == 'object' && __webpack_require__.g) || // eslint-disable-next-line no-new-func -- fallback
  function () {
    return this;
  }() || Function('return this')();
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/has.js":
  /*!***********************************************!*\
    !*** ./node_modules/core-js/internals/has.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var hasOwnProperty = {}.hasOwnProperty;
  
  module.exports = Object.hasOwn || function hasOwn(it, key) {
    return hasOwnProperty.call(toObject(it), key);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/hidden-keys.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/hidden-keys.js ***!
    \*******************************************************/
  /***/ ((module) => {
  
  module.exports = {};
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/html.js":
  /*!************************************************!*\
    !*** ./node_modules/core-js/internals/html.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  
  module.exports = getBuiltIn('document', 'documentElement');
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/ie8-dom-define.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/ie8-dom-define.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); // Thank's IE8 for his funny defineProperty
  
  
  module.exports = !DESCRIPTORS && !fails(function () {
    // eslint-disable-next-line es/no-object-defineproperty -- requied for testing
    return Object.defineProperty(createElement('div'), 'a', {
      get: function get() {
        return 7;
      }
    }).a != 7;
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/indexed-object.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/indexed-object.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
  
  var split = ''.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);
  }) ? function (it) {
    return classof(it) == 'String' ? split.call(it, '') : Object(it);
  } : Object;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/inherit-if-required.js":
  /*!***************************************************************!*\
    !*** ./node_modules/core-js/internals/inherit-if-required.js ***!
    \***************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); // 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
    typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf($this, NewTargetPrototype);
    return $this;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/inspect-source.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/inspect-source.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
  
  var functionToString = Function.toString; // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
  
  if (typeof store.inspectSource != 'function') {
    store.inspectSource = function (it) {
      return functionToString.call(it);
    };
  }
  
  module.exports = store.inspectSource;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/internal-state.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/internal-state.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js");
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var objectHas = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var shared = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
  
  var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
  
  var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
  
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
  var WeakMap = global.WeakMap;
  var set, get, has;
  
  var enforce = function enforce(it) {
    return has(it) ? get(it) : set(it, {});
  };
  
  var getterFor = function getterFor(TYPE) {
    return function (it) {
      var state;
  
      if (!isObject(it) || (state = get(it)).type !== TYPE) {
        throw TypeError('Incompatible receiver, ' + TYPE + ' required');
      }
  
      return state;
    };
  };
  
  if (NATIVE_WEAK_MAP || shared.state) {
    var store = shared.state || (shared.state = new WeakMap());
    var wmget = store.get;
    var wmhas = store.has;
    var wmset = store.set;
  
    set = function set(it, metadata) {
      if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
      metadata.facade = it;
      wmset.call(store, it, metadata);
      return metadata;
    };
  
    get = function get(it) {
      return wmget.call(store, it) || {};
    };
  
    has = function has(it) {
      return wmhas.call(store, it);
    };
  } else {
    var STATE = sharedKey('state');
    hiddenKeys[STATE] = true;
  
    set = function set(it, metadata) {
      if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
      metadata.facade = it;
      createNonEnumerableProperty(it, STATE, metadata);
      return metadata;
    };
  
    get = function get(it) {
      return objectHas(it, STATE) ? it[STATE] : {};
    };
  
    has = function has(it) {
      return objectHas(it, STATE);
    };
  }
  
  module.exports = {
    set: set,
    get: get,
    has: has,
    enforce: enforce,
    getterFor: getterFor
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/is-array-iterator-method.js":
  /*!********************************************************************!*\
    !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***!
    \********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
  
  var ITERATOR = wellKnownSymbol('iterator');
  var ArrayPrototype = Array.prototype; // check on default Array iterator
  
  module.exports = function (it) {
    return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/is-array.js":
  /*!****************************************************!*\
    !*** ./node_modules/core-js/internals/is-array.js ***!
    \****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); // `IsArray` abstract operation
  // https://tc39.es/ecma262/#sec-isarray
  // eslint-disable-next-line es/no-array-isarray -- safe
  
  
  module.exports = Array.isArray || function isArray(arg) {
    return classof(arg) == 'Array';
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/is-forced.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/is-forced.js ***!
    \*****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var replacement = /#|\.prototype\./;
  
  var isForced = function isForced(feature, detection) {
    var value = data[normalize(feature)];
    return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;
  };
  
  var normalize = isForced.normalize = function (string) {
    return String(string).replace(replacement, '.').toLowerCase();
  };
  
  var data = isForced.data = {};
  var NATIVE = isForced.NATIVE = 'N';
  var POLYFILL = isForced.POLYFILL = 'P';
  module.exports = isForced;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/is-object.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/is-object.js ***!
    \*****************************************************/
  /***/ ((module) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  module.exports = function (it) {
    return _typeof(it) === 'object' ? it !== null : typeof it === 'function';
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/is-pure.js":
  /*!***************************************************!*\
    !*** ./node_modules/core-js/internals/is-pure.js ***!
    \***************************************************/
  /***/ ((module) => {
  
  module.exports = false;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/is-regexp.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/is-regexp.js ***!
    \*****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation
  // https://tc39.es/ecma262/#sec-isregexp
  
  module.exports = function (it) {
    var isRegExp;
    return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/iterate.js":
  /*!***************************************************!*\
    !*** ./node_modules/core-js/internals/iterate.js ***!
    \***************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
  
  var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js");
  
  var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "./node_modules/core-js/internals/iterator-close.js");
  
  var Result = function Result(stopped, result) {
    this.stopped = stopped;
    this.result = result;
  };
  
  module.exports = function (iterable, unboundFunction, options) {
    var that = options && options.that;
    var AS_ENTRIES = !!(options && options.AS_ENTRIES);
    var IS_ITERATOR = !!(options && options.IS_ITERATOR);
    var INTERRUPTED = !!(options && options.INTERRUPTED);
    var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
    var iterator, iterFn, index, length, result, next, step;
  
    var stop = function stop(condition) {
      if (iterator) iteratorClose(iterator);
      return new Result(true, condition);
    };
  
    var callFn = function callFn(value) {
      if (AS_ENTRIES) {
        anObject(value);
        return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
      }
  
      return INTERRUPTED ? fn(value, stop) : fn(value);
    };
  
    if (IS_ITERATOR) {
      iterator = iterable;
    } else {
      iterFn = getIteratorMethod(iterable);
      if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); // optimisation for array iterators
  
      if (isArrayIteratorMethod(iterFn)) {
        for (index = 0, length = toLength(iterable.length); length > index; index++) {
          result = callFn(iterable[index]);
          if (result && result instanceof Result) return result;
        }
  
        return new Result(false);
      }
  
      iterator = iterFn.call(iterable);
    }
  
    next = iterator.next;
  
    while (!(step = next.call(iterator)).done) {
      try {
        result = callFn(step.value);
      } catch (error) {
        iteratorClose(iterator);
        throw error;
      }
  
      if (_typeof(result) == 'object' && result && result instanceof Result) return result;
    }
  
    return new Result(false);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/iterator-close.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/iterator-close.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  module.exports = function (iterator) {
    var returnMethod = iterator['return'];
  
    if (returnMethod !== undefined) {
      return anObject(returnMethod.call(iterator)).value;
    }
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/iterators-core.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/internals/iterators-core.js ***!
    \**********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
  
  var ITERATOR = wellKnownSymbol('iterator');
  var BUGGY_SAFARI_ITERATORS = false;
  
  var returnThis = function returnThis() {
    return this;
  }; // `%IteratorPrototype%` object
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-object
  
  
  var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
  /* eslint-disable es/no-array-prototype-keys -- safe */
  
  if ([].keys) {
    arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next`
  
    if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else {
      PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
      if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
    }
  }
  
  var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {
    var test = {}; // FF44- legacy iterators case
  
    return IteratorPrototype[ITERATOR].call(test) !== test;
  });
  if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; // `%IteratorPrototype%[@@iterator]()` method
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
  
  if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {
    createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
  }
  
  module.exports = {
    IteratorPrototype: IteratorPrototype,
    BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/iterators.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/iterators.js ***!
    \*****************************************************/
  /***/ ((module) => {
  
  module.exports = {};
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/native-symbol.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/internals/native-symbol.js ***!
    \*********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  /* eslint-disable es/no-symbol -- required for testing */
  var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
  
  
  module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
    var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion
    // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
  
    return !String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
    !Symbol.sham && V8_VERSION && V8_VERSION < 41;
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/native-weak-map.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/internals/native-weak-map.js ***!
    \***********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
  
  var WeakMap = global.WeakMap;
  module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/not-a-regexp.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/internals/not-a-regexp.js ***!
    \********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js");
  
  module.exports = function (it) {
    if (isRegExp(it)) {
      throw TypeError("The method doesn't accept regular expressions");
    }
  
    return it;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/number-parse-int.js":
  /*!************************************************************!*\
    !*** ./node_modules/core-js/internals/number-parse-int.js ***!
    \************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim);
  
  var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
  
  var $parseInt = global.parseInt;
  var hex = /^[+-]?0[Xx]/;
  var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22; // `parseInt` method
  // https://tc39.es/ecma262/#sec-parseint-string-radix
  
  module.exports = FORCED ? function parseInt(string, radix) {
    var S = trim(String(string));
    return $parseInt(S, radix >>> 0 || (hex.test(S) ? 16 : 10));
  } : $parseInt;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-assign.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/internals/object-assign.js ***!
    \*********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
  
  var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
  
  var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); // eslint-disable-next-line es/no-object-assign -- safe
  
  
  var $assign = Object.assign; // eslint-disable-next-line es/no-object-defineproperty -- required for testing
  
  var defineProperty = Object.defineProperty; // `Object.assign` method
  // https://tc39.es/ecma262/#sec-object.assign
  
  module.exports = !$assign || fails(function () {
    // should have correct order of operations (Edge bug)
    if (DESCRIPTORS && $assign({
      b: 1
    }, $assign(defineProperty({}, 'a', {
      enumerable: true,
      get: function get() {
        defineProperty(this, 'b', {
          value: 3,
          enumerable: false
        });
      }
    }), {
      b: 2
    })).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 symbol = Symbol();
    var alphabet = 'abcdefghijklmnopqrst';
    A[symbol] = 7;
    alphabet.split('').forEach(function (chr) {
      B[chr] = chr;
    });
    return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;
  }) ? function assign(target, source) {
    // eslint-disable-line no-unused-vars -- required for `.length`
    var T = toObject(target);
    var argumentsLength = arguments.length;
    var index = 1;
    var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
    var propertyIsEnumerable = propertyIsEnumerableModule.f;
  
    while (argumentsLength > index) {
      var S = IndexedObject(arguments[index++]);
      var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
      var length = keys.length;
      var j = 0;
      var key;
  
      while (length > j) {
        key = keys[j++];
        if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];
      }
    }
  
    return T;
  } : $assign;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-create.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/internals/object-create.js ***!
    \*********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js");
  
  var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
  
  var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
  
  var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js");
  
  var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
  
  var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
  
  var GT = '>';
  var LT = '<';
  var PROTOTYPE = 'prototype';
  var SCRIPT = 'script';
  var IE_PROTO = sharedKey('IE_PROTO');
  
  var EmptyConstructor = function EmptyConstructor() {
    /* empty */
  };
  
  var scriptTag = function scriptTag(content) {
    return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
  }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
  
  
  var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {
    activeXDocument.write(scriptTag(''));
    activeXDocument.close();
    var temp = activeXDocument.parentWindow.Object;
    activeXDocument = null; // avoid memory leak
  
    return temp;
  }; // Create object with fake `null` prototype: use iframe Object with cleared prototype
  
  
  var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {
    // Thrash, waste and sodomy: IE GC bug
    var iframe = documentCreateElement('iframe');
    var JS = 'java' + SCRIPT + ':';
    var iframeDocument;
    iframe.style.display = 'none';
    html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475
  
    iframe.src = String(JS);
    iframeDocument = iframe.contentWindow.document;
    iframeDocument.open();
    iframeDocument.write(scriptTag('document.F=Object'));
    iframeDocument.close();
    return iframeDocument.F;
  }; // Check for document.domain and active x support
  // No need to use active x approach when document.domain is not set
  // see https://github.com/es-shims/es5-shim/issues/150
  // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
  // avoid IE GC bug
  
  
  var activeXDocument;
  
  var _NullProtoObject = function NullProtoObject() {
    try {
      /* global ActiveXObject -- old IE */
      activeXDocument = document.domain && new ActiveXObject('htmlfile');
    } catch (error) {
      /* ignore */
    }
  
    _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
    var length = enumBugKeys.length;
  
    while (length--) {
      delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]];
    }
  
    return _NullProtoObject();
  };
  
  hiddenKeys[IE_PROTO] = true; // `Object.create` method
  // https://tc39.es/ecma262/#sec-object.create
  
  module.exports = Object.create || function create(O, Properties) {
    var result;
  
    if (O !== null) {
      EmptyConstructor[PROTOTYPE] = anObject(O);
      result = new EmptyConstructor();
      EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill
  
      result[IE_PROTO] = O;
    } else result = _NullProtoObject();
  
    return Properties === undefined ? result : defineProperties(result, Properties);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-define-properties.js":
  /*!********************************************************************!*\
    !*** ./node_modules/core-js/internals/object-define-properties.js ***!
    \********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); // `Object.defineProperties` method
  // https://tc39.es/ecma262/#sec-object.defineproperties
  // eslint-disable-next-line es/no-object-defineproperties -- safe
  
  
  module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
    anObject(O);
    var keys = objectKeys(Properties);
    var length = keys.length;
    var index = 0;
    var key;
  
    while (length > index) {
      definePropertyModule.f(O, key = keys[index++], Properties[key]);
    }
  
    return O;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-define-property.js":
  /*!******************************************************************!*\
    !*** ./node_modules/core-js/internals/object-define-property.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); // eslint-disable-next-line es/no-object-defineproperty -- safe
  
  
  var $defineProperty = Object.defineProperty; // `Object.defineProperty` method
  // https://tc39.es/ecma262/#sec-object.defineproperty
  
  exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {
    anObject(O);
    P = toPrimitive(P, true);
    anObject(Attributes);
    if (IE8_DOM_DEFINE) try {
      return $defineProperty(O, P, Attributes);
    } catch (error) {
      /* empty */
    }
    if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
    if ('value' in Attributes) O[P] = Attributes.value;
    return O;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
  
  var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
  
  
  var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
  
  exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
    O = toIndexedObject(O);
    P = toPrimitive(P, true);
    if (IE8_DOM_DEFINE) try {
      return $getOwnPropertyDescriptor(O, P);
    } catch (error) {
      /* empty */
    }
    if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-get-own-property-names-external.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/core-js/internals/object-get-own-property-names-external.js ***!
    \**********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /* eslint-disable es/no-object-getownpropertynames -- safe */
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var $getOwnPropertyNames = (__webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f);
  
  var toString = {}.toString;
  var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
  
  var getWindowNames = function getWindowNames(it) {
    try {
      return $getOwnPropertyNames(it);
    } catch (error) {
      return windowNames.slice();
    }
  }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
  
  
  module.exports.f = function getOwnPropertyNames(it) {
    return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it));
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-get-own-property-names.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
  
  var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
  
  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
  
  exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
    return internalObjectKeys(O, hiddenKeys);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, exports) => {
  
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
  exports.f = Object.getOwnPropertySymbols;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-get-prototype-of.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***!
    \*******************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
  
  var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "./node_modules/core-js/internals/correct-prototype-getter.js");
  
  var IE_PROTO = sharedKey('IE_PROTO');
  var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method
  // https://tc39.es/ecma262/#sec-object.getprototypeof
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
  
  module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
    O = toObject(O);
    if (has(O, IE_PROTO)) return O[IE_PROTO];
  
    if (typeof O.constructor == 'function' && O instanceof O.constructor) {
      return O.constructor.prototype;
    }
  
    return O instanceof Object ? ObjectPrototype : null;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-keys-internal.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/internals/object-keys-internal.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf);
  
  var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
  
  module.exports = function (object, names) {
    var O = toIndexedObject(object);
    var i = 0;
    var result = [];
    var key;
  
    for (key in O) {
      !has(hiddenKeys, key) && has(O, key) && result.push(key);
    } // Don't enum bug & hidden keys
  
  
    while (names.length > i) {
      if (has(O, key = names[i++])) {
        ~indexOf(result, key) || result.push(key);
      }
    }
  
    return result;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-keys.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/object-keys.js ***!
    \*******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
  
  var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); // `Object.keys` method
  // https://tc39.es/ecma262/#sec-object.keys
  // eslint-disable-next-line es/no-object-keys -- safe
  
  
  module.exports = Object.keys || function keys(O) {
    return internalObjectKeys(O, enumBugKeys);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-property-is-enumerable.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, exports) => {
  
  "use strict";
  
  
  var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
  
  var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug
  
  var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({
    1: 2
  }, 1); // `Object.prototype.propertyIsEnumerable` method implementation
  // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
  
  exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
    var descriptor = getOwnPropertyDescriptor(this, V);
    return !!descriptor && descriptor.enumerable;
  } : $propertyIsEnumerable;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-set-prototype-of.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***!
    \*******************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  /* eslint-disable no-proto -- safe */
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "./node_modules/core-js/internals/a-possible-prototype.js"); // `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
  
  
  module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
    var CORRECT_SETTER = false;
    var test = {};
    var setter;
  
    try {
      // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
      setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
      setter.call(test, []);
      CORRECT_SETTER = test instanceof Array;
    } catch (error) {
      /* empty */
    }
  
    return function setPrototypeOf(O, proto) {
      anObject(O);
      aPossiblePrototype(proto);
      if (CORRECT_SETTER) setter.call(O, proto);else O.__proto__ = proto;
      return O;
    };
  }() : undefined);
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-to-array.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/internals/object-to-array.js ***!
    \***********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var propertyIsEnumerable = (__webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js").f); // `Object.{ entries, values }` methods implementation
  
  
  var createMethod = function createMethod(TO_ENTRIES) {
    return function (it) {
      var O = toIndexedObject(it);
      var keys = objectKeys(O);
      var length = keys.length;
      var i = 0;
      var result = [];
      var key;
  
      while (length > i) {
        key = keys[i++];
  
        if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
          result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
        }
      }
  
      return result;
    };
  };
  
  module.exports = {
    // `Object.entries` method
    // https://tc39.es/ecma262/#sec-object.entries
    entries: createMethod(true),
    // `Object.values` method
    // https://tc39.es/ecma262/#sec-object.values
    values: createMethod(false)
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/object-to-string.js":
  /*!************************************************************!*\
    !*** ./node_modules/core-js/internals/object-to-string.js ***!
    \************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
  
  var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); // `Object.prototype.toString` method implementation
  // https://tc39.es/ecma262/#sec-object.prototype.tostring
  
  
  module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
    return '[object ' + classof(this) + ']';
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/own-keys.js":
  /*!****************************************************!*\
    !*** ./node_modules/core-js/internals/own-keys.js ***!
    \****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  
  var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js");
  
  var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); // all object keys, includes non-enumerable and symbols
  
  
  module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
    var keys = getOwnPropertyNamesModule.f(anObject(it));
    var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
    return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/path.js":
  /*!************************************************!*\
    !*** ./node_modules/core-js/internals/path.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  module.exports = global;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/redefine.js":
  /*!****************************************************!*\
    !*** ./node_modules/core-js/internals/redefine.js ***!
    \****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
  
  var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
  
  var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
  
  var getInternalState = InternalStateModule.get;
  var enforceInternalState = InternalStateModule.enforce;
  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 state;
  
    if (typeof value == 'function') {
      if (typeof key == 'string' && !has(value, 'name')) {
        createNonEnumerableProperty(value, 'name', key);
      }
  
      state = enforceInternalState(value);
  
      if (!state.source) {
        state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
      }
    }
  
    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;
    }
  
    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() {
    return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/regexp-exec-abstract.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var classof = __webpack_require__(/*! ./classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
  
  var regexpExec = __webpack_require__(/*! ./regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); // `RegExpExec` abstract operation
  // https://tc39.es/ecma262/#sec-regexpexec
  
  
  module.exports = function (R, S) {
    var exec = R.exec;
  
    if (typeof exec === 'function') {
      var result = exec.call(R, S);
  
      if (_typeof(result) !== 'object') {
        throw TypeError('RegExp exec method returned something other than an Object or null');
      }
  
      return result;
    }
  
    if (classof(R) !== 'RegExp') {
      throw TypeError('RegExp#exec called on incompatible receiver');
    }
  
    return regexpExec.call(R, S);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/regexp-exec.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/regexp-exec.js ***!
    \*******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
  
  /* eslint-disable regexp/no-useless-quantifier -- testing */
  
  var regexpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
  
  var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
  
  var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
  
  var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
  
  var getInternalState = (__webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").get);
  
  var UNSUPPORTED_DOT_ALL = __webpack_require__(/*! ../internals/regexp-unsupported-dot-all */ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js");
  
  var UNSUPPORTED_NCG = __webpack_require__(/*! ../internals/regexp-unsupported-ncg */ "./node_modules/core-js/internals/regexp-unsupported-ncg.js");
  
  var nativeExec = RegExp.prototype.exec;
  var nativeReplace = shared('native-string-replace', String.prototype.replace);
  var patchedExec = nativeExec;
  
  var UPDATES_LAST_INDEX_WRONG = function () {
    var re1 = /a/;
    var re2 = /b*/g;
    nativeExec.call(re1, 'a');
    nativeExec.call(re2, 'a');
    return re1.lastIndex !== 0 || re2.lastIndex !== 0;
  }();
  
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch.
  
  var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
  var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;
  
  if (PATCH) {
    // eslint-disable-next-line max-statements -- TODO
    patchedExec = function exec(str) {
      var re = this;
      var state = getInternalState(re);
      var raw = state.raw;
      var result, reCopy, lastIndex, match, i, object, group;
  
      if (raw) {
        raw.lastIndex = re.lastIndex;
        result = patchedExec.call(raw, str);
        re.lastIndex = raw.lastIndex;
        return result;
      }
  
      var groups = state.groups;
      var sticky = UNSUPPORTED_Y && re.sticky;
      var flags = regexpFlags.call(re);
      var source = re.source;
      var charsAdded = 0;
      var strCopy = str;
  
      if (sticky) {
        flags = flags.replace('y', '');
  
        if (flags.indexOf('g') === -1) {
          flags += 'g';
        }
  
        strCopy = String(str).slice(re.lastIndex); // Support anchored sticky behavior.
  
        if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
          source = '(?: ' + source + ')';
          strCopy = ' ' + strCopy;
          charsAdded++;
        } // ^(? + rx + ) is needed, in combination with some str slicing, to
        // simulate the 'y' flag.
  
  
        reCopy = new RegExp('^(?:' + source + ')', flags);
      }
  
      if (NPCG_INCLUDED) {
        reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
      }
  
      if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
      match = nativeExec.call(sticky ? reCopy : re, strCopy);
  
      if (sticky) {
        if (match) {
          match.input = match.input.slice(charsAdded);
          match[0] = match[0].slice(charsAdded);
          match.index = re.lastIndex;
          re.lastIndex += match[0].length;
        } else re.lastIndex = 0;
      } else if (UPDATES_LAST_INDEX_WRONG && match) {
        re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
      }
  
      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 /(.?)?/
        nativeReplace.call(match[0], reCopy, function () {
          for (i = 1; i < arguments.length - 2; i++) {
            if (arguments[i] === undefined) match[i] = undefined;
          }
        });
      }
  
      if (match && groups) {
        match.groups = object = create(null);
  
        for (i = 0; i < groups.length; i++) {
          group = groups[i];
          object[group[0]] = match[group[1]];
        }
      }
  
      return match;
    };
  }
  
  module.exports = patchedExec;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/regexp-flags.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/internals/regexp-flags.js ***!
    \********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); // `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.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.sticky) result += 'y';
    return result;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/regexp-sticky-helpers.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
  
  
  var RE = function RE(s, f) {
    return RegExp(s, f);
  };
  
  exports.UNSUPPORTED_Y = fails(function () {
    var re = RE('a', 'y');
    re.lastIndex = 2;
    return re.exec('abcd') != null;
  });
  exports.BROKEN_CARET = fails(function () {
    // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
    var re = RE('^r', 'gy');
    re.lastIndex = 2;
    return re.exec('str') != null;
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/core-js/internals/regexp-unsupported-dot-all.js ***!
    \**********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js");
  
  module.exports = fails(function () {
    // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
    var re = RegExp('.', _typeof('').charAt(0));
    return !(re.dotAll && re.exec('\n') && re.flags === 's');
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/regexp-unsupported-ncg.js":
  /*!******************************************************************!*\
    !*** ./node_modules/core-js/internals/regexp-unsupported-ncg.js ***!
    \******************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js");
  
  module.exports = fails(function () {
    // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError
    var re = RegExp('(?<a>b)', _typeof('').charAt(5));
    return re.exec('b').groups.a !== 'b' || 'b'.replace(re, '$<a>c') !== 'bc';
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/require-object-coercible.js":
  /*!********************************************************************!*\
    !*** ./node_modules/core-js/internals/require-object-coercible.js ***!
    \********************************************************************/
  /***/ ((module) => {
  
  // `RequireObjectCoercible` abstract operation
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
  module.exports = function (it) {
    if (it == undefined) throw TypeError("Can't call method on " + it);
    return it;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/set-global.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/internals/set-global.js ***!
    \******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  module.exports = function (key, value) {
    try {
      createNonEnumerableProperty(global, key, value);
    } catch (error) {
      global[key] = value;
    }
  
    return value;
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/set-species.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/set-species.js ***!
    \*******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var SPECIES = wellKnownSymbol('species');
  
  module.exports = function (CONSTRUCTOR_NAME) {
    var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
    var defineProperty = definePropertyModule.f;
  
    if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
      defineProperty(Constructor, SPECIES, {
        configurable: true,
        get: function get() {
          return this;
        }
      });
    }
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/set-to-string-tag.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/set-to-string-tag.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
  
  module.exports = function (it, TAG, STATIC) {
    if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
      defineProperty(it, TO_STRING_TAG, {
        configurable: true,
        value: TAG
      });
    }
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/shared-key.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/internals/shared-key.js ***!
    \******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
  
  var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
  
  var keys = shared('keys');
  
  module.exports = function (key) {
    return keys[key] || (keys[key] = uid(key));
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/shared-store.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/internals/shared-store.js ***!
    \********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
  
  var SHARED = '__core-js_shared__';
  var store = global[SHARED] || setGlobal(SHARED, {});
  module.exports = store;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/shared.js":
  /*!**************************************************!*\
    !*** ./node_modules/core-js/internals/shared.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
  
  var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
  
  (module.exports = function (key, value) {
    return store[key] || (store[key] = value !== undefined ? value : {});
  })('versions', []).push({
    version: '3.15.2',
    mode: IS_PURE ? 'pure' : 'global',
    copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/species-constructor.js":
  /*!***************************************************************!*\
    !*** ./node_modules/core-js/internals/species-constructor.js ***!
    \***************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation
  // https://tc39.es/ecma262/#sec-speciesconstructor
  
  module.exports = function (O, defaultConstructor) {
    var C = anObject(O).constructor;
    var S;
    return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/string-multibyte.js":
  /*!************************************************************!*\
    !*** ./node_modules/core-js/internals/string-multibyte.js ***!
    \************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); // `String.prototype.{ codePointAt, at }` methods implementation
  
  
  var createMethod = function createMethod(CONVERT_TO_STRING) {
    return function ($this, pos) {
      var S = String(requireObjectCoercible($this));
      var position = toInteger(pos);
      var size = S.length;
      var first, second;
      if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
      first = S.charCodeAt(position);
      return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
    };
  };
  
  module.exports = {
    // `String.prototype.codePointAt` method
    // https://tc39.es/ecma262/#sec-string.prototype.codepointat
    codeAt: createMethod(false),
    // `String.prototype.at` method
    // https://github.com/mathiasbynens/String.prototype.at
    charAt: createMethod(true)
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/string-trim.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/string-trim.js ***!
    \*******************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
  
  var whitespace = '[' + whitespaces + ']';
  var ltrim = RegExp('^' + whitespace + whitespace + '*');
  var rtrim = RegExp(whitespace + whitespace + '*$'); // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
  
  var createMethod = function createMethod(TYPE) {
    return function ($this) {
      var string = String(requireObjectCoercible($this));
      if (TYPE & 1) string = string.replace(ltrim, '');
      if (TYPE & 2) string = string.replace(rtrim, '');
      return string;
    };
  };
  
  module.exports = {
    // `String.prototype.{ trimLeft, trimStart }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimstart
    start: createMethod(1),
    // `String.prototype.{ trimRight, trimEnd }` methods
    // https://tc39.es/ecma262/#sec-string.prototype.trimend
    end: createMethod(2),
    // `String.prototype.trim` method
    // https://tc39.es/ecma262/#sec-string.prototype.trim
    trim: createMethod(3)
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-absolute-index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/to-absolute-index.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
  
  var max = Math.max;
  var min = Math.min; // Helper for a popular repeating case of the spec:
  // Let integer be ? ToInteger(index).
  // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
  
  module.exports = function (index, length) {
    var integer = toInteger(index);
    return integer < 0 ? max(integer + length, 0) : min(integer, length);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-indexed-object.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/to-indexed-object.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  // toObject with fallback for non-array-like ES3 strings
  var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  module.exports = function (it) {
    return IndexedObject(requireObjectCoercible(it));
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-integer.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/internals/to-integer.js ***!
    \******************************************************/
  /***/ ((module) => {
  
  var ceil = Math.ceil;
  var floor = Math.floor; // `ToInteger` abstract operation
  // https://tc39.es/ecma262/#sec-tointeger
  
  module.exports = function (argument) {
    return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-length.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/to-length.js ***!
    \*****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
  
  var min = Math.min; // `ToLength` abstract operation
  // https://tc39.es/ecma262/#sec-tolength
  
  module.exports = function (argument) {
    return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-object.js":
  /*!*****************************************************!*\
    !*** ./node_modules/core-js/internals/to-object.js ***!
    \*****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); // `ToObject` abstract operation
  // https://tc39.es/ecma262/#sec-toobject
  
  
  module.exports = function (argument) {
    return Object(requireObjectCoercible(argument));
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-primitive.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/internals/to-primitive.js ***!
    \********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); // `ToPrimitive` abstract operation
  // https://tc39.es/ecma262/#sec-toprimitive
  // instead of the ES6 spec version, we didn't implement @@toPrimitive case
  // and the second argument - flag - preferred type is a string
  
  
  module.exports = function (input, PREFERRED_STRING) {
    if (!isObject(input)) return input;
    var fn, val;
    if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
    if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
    if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
    throw TypeError("Can't convert object to primitive value");
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/to-string-tag-support.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!
    \*****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
  var test = {};
  test[TO_STRING_TAG] = 'z';
  module.exports = String(test) === '[object z]';
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/uid.js":
  /*!***********************************************!*\
    !*** ./node_modules/core-js/internals/uid.js ***!
    \***********************************************/
  /***/ ((module) => {
  
  var id = 0;
  var postfix = Math.random();
  
  module.exports = function (key) {
    return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/use-symbol-as-uid.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /* eslint-disable es/no-symbol -- required for testing */
  var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
  
  module.exports = NATIVE_SYMBOL && !Symbol.sham && _typeof(Symbol.iterator) == 'symbol';
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/well-known-symbol-wrapped.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/core-js/internals/well-known-symbol-wrapped.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  exports.f = wellKnownSymbol;
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/well-known-symbol.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/internals/well-known-symbol.js ***!
    \*************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
  
  var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
  
  var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js");
  
  var WellKnownSymbolsStore = shared('wks');
  var _Symbol = global.Symbol;
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? _Symbol : _Symbol && _Symbol.withoutSetter || uid;
  
  module.exports = function (name) {
    if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
      if (NATIVE_SYMBOL && has(_Symbol, name)) {
        WellKnownSymbolsStore[name] = _Symbol[name];
      } else {
        WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
      }
    }
  
    return WellKnownSymbolsStore[name];
  };
  
  /***/ }),
  
  /***/ "./node_modules/core-js/internals/whitespaces.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/internals/whitespaces.js ***!
    \*******************************************************/
  /***/ ((module) => {
  
  // a string of all valid unicode whitespaces
  module.exports = "\t\n\x0B\f\r \xA0\u1680\u2000\u2001\u2002" + "\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.concat.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.concat.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js");
  
  var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js");
  
  var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
  
  var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
  var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
  var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; // 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
  
  var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
    var array = [];
    array[IS_CONCAT_SPREADABLE] = false;
    return array.concat()[0] !== array;
  });
  var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
  
  var isConcatSpreadable = function isConcatSpreadable(O) {
    if (!isObject(O)) return false;
    var spreadable = O[IS_CONCAT_SPREADABLE];
    return spreadable !== undefined ? !!spreadable : isArray(O);
  };
  
  var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method
  // https://tc39.es/ecma262/#sec-array.prototype.concat
  // with adding support of @@isConcatSpreadable and @@species
  
  $({
    target: 'Array',
    proto: true,
    forced: FORCED
  }, {
    // eslint-disable-next-line no-unused-vars -- required for `.length`
    concat: function concat(arg) {
      var O = toObject(this);
      var A = arraySpeciesCreate(O, 0);
      var n = 0;
      var i, k, length, len, E;
  
      for (i = -1, length = arguments.length; i < length; i++) {
        E = i === -1 ? O : arguments[i];
  
        if (isConcatSpreadable(E)) {
          len = toLength(E.length);
          if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
  
          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);
          createProperty(A, n++, E);
        }
      }
  
      A.length = n;
      return A;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.fill.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.fill.js ***!
    \*******************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var fill = __webpack_require__(/*! ../internals/array-fill */ "./node_modules/core-js/internals/array-fill.js");
  
  var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js"); // `Array.prototype.fill` method
  // https://tc39.es/ecma262/#sec-array.prototype.fill
  
  
  $({
    target: 'Array',
    proto: true
  }, {
    fill: fill
  }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
  
  addToUnscopables('fill');
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.filter.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.filter.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var $filter = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").filter);
  
  var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js");
  
  var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); // `Array.prototype.filter` method
  // https://tc39.es/ecma262/#sec-array.prototype.filter
  // with adding support of @@species
  
  $({
    target: 'Array',
    proto: true,
    forced: !HAS_SPECIES_SUPPORT
  }, {
    filter: function filter(callbackfn
    /* , thisArg */
    ) {
      return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.find.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.find.js ***!
    \*******************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var $find = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").find);
  
  var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js");
  
  var FIND = 'find';
  var SKIPS_HOLES = true; // Shouldn't skip holes
  
  if (FIND in []) Array(1)[FIND](function () {
    SKIPS_HOLES = false;
  }); // `Array.prototype.find` method
  // https://tc39.es/ecma262/#sec-array.prototype.find
  
  $({
    target: 'Array',
    proto: true,
    forced: SKIPS_HOLES
  }, {
    find: function find(callbackfn
    /* , that = undefined */
    ) {
      return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
  }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
  
  addToUnscopables(FIND);
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.flat-map.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.flat-map.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var flattenIntoArray = __webpack_require__(/*! ../internals/flatten-into-array */ "./node_modules/core-js/internals/flatten-into-array.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
  
  var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js"); // `Array.prototype.flatMap` method
  // https://tc39.es/ecma262/#sec-array.prototype.flatmap
  
  
  $({
    target: 'Array',
    proto: true
  }, {
    flatMap: function flatMap(callbackfn
    /* , thisArg */
    ) {
      var O = toObject(this);
      var sourceLen = toLength(O.length);
      var A;
      aFunction(callbackfn);
      A = arraySpeciesCreate(O, 0);
      A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
      return A;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.includes.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.includes.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var $includes = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").includes);
  
  var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js"); // `Array.prototype.includes` method
  // https://tc39.es/ecma262/#sec-array.prototype.includes
  
  
  $({
    target: 'Array',
    proto: true
  }, {
    includes: function includes(el
    /* , fromIndex = 0 */
    ) {
      return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
    }
  }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
  
  addToUnscopables('includes');
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.iterator.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.iterator.js ***!
    \***********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js");
  
  var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
  
  var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
  
  var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js");
  
  var ARRAY_ITERATOR = 'Array Iterator';
  var setInternalState = InternalStateModule.set;
  var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method
  // https://tc39.es/ecma262/#sec-array.prototype.entries
  // `Array.prototype.keys` method
  // https://tc39.es/ecma262/#sec-array.prototype.keys
  // `Array.prototype.values` method
  // https://tc39.es/ecma262/#sec-array.prototype.values
  // `Array.prototype[@@iterator]` method
  // https://tc39.es/ecma262/#sec-array.prototype-@@iterator
  // `CreateArrayIterator` internal method
  // https://tc39.es/ecma262/#sec-createarrayiterator
  
  module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
    setInternalState(this, {
      type: ARRAY_ITERATOR,
      target: toIndexedObject(iterated),
      // target
      index: 0,
      // next index
      kind: kind // kind
  
    }); // `%ArrayIteratorPrototype%.next` method
    // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
  }, function () {
    var state = getInternalState(this);
    var target = state.target;
    var kind = state.kind;
    var index = state.index++;
  
    if (!target || index >= target.length) {
      state.target = undefined;
      return {
        value: undefined,
        done: 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
    };
  }, '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
  
  addToUnscopables('keys');
  addToUnscopables('values');
  addToUnscopables('entries');
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.map.js":
  /*!******************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.map.js ***!
    \******************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var $map = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").map);
  
  var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js");
  
  var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); // `Array.prototype.map` method
  // https://tc39.es/ecma262/#sec-array.prototype.map
  // with adding support of @@species
  
  $({
    target: 'Array',
    proto: true,
    forced: !HAS_SPECIES_SUPPORT
  }, {
    map: function map(callbackfn
    /* , thisArg */
    ) {
      return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.slice.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.slice.js ***!
    \********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
  
  var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js");
  
  var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
  var SPECIES = wellKnownSymbol('species');
  var nativeSlice = [].slice;
  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
  
  $({
    target: 'Array',
    proto: true,
    forced: !HAS_SPECIES_SUPPORT
  }, {
    slice: function slice(start, end) {
      var O = toIndexedObject(this);
      var length = toLength(O.length);
      var k = toAbsoluteIndex(start, length);
      var fin = toAbsoluteIndex(end === undefined ? length : end, length); // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
  
      var Constructor, result, n;
  
      if (isArray(O)) {
        Constructor = O.constructor; // cross-realm fallback
  
        if (typeof Constructor == 'function' && (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 nativeSlice.call(O, k, fin);
        }
      }
  
      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]);
      }
  
      result.length = n;
      return result;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.sort.js":
  /*!*******************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.sort.js ***!
    \*******************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var internalSort = __webpack_require__(/*! ../internals/array-sort */ "./node_modules/core-js/internals/array-sort.js");
  
  var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js");
  
  var FF = __webpack_require__(/*! ../internals/engine-ff-version */ "./node_modules/core-js/internals/engine-ff-version.js");
  
  var IE_OR_EDGE = __webpack_require__(/*! ../internals/engine-is-ie-or-edge */ "./node_modules/core-js/internals/engine-is-ie-or-edge.js");
  
  var V8 = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
  
  var WEBKIT = __webpack_require__(/*! ../internals/engine-webkit-version */ "./node_modules/core-js/internals/engine-webkit-version.js");
  
  var test = [];
  var nativeSort = test.sort; // IE8-
  
  var FAILS_ON_UNDEFINED = fails(function () {
    test.sort(undefined);
  }); // V8 bug
  
  var FAILS_ON_NULL = fails(function () {
    test.sort(null);
  }); // Old WebKit
  
  var STRICT_METHOD = arrayMethodIsStrict('sort');
  var STABLE_SORT = !fails(function () {
    // feature detection can be too slow, so check engines versions
    if (V8) return V8 < 70;
    if (FF && FF > 3) return;
    if (IE_OR_EDGE) return true;
    if (WEBKIT) return WEBKIT < 603;
    var result = '';
    var code, chr, value, index; // generate an array with more 512 elements (Chakra and old V8 fails only in this case)
  
    for (code = 65; code < 76; code++) {
      chr = String.fromCharCode(code);
  
      switch (code) {
        case 66:
        case 69:
        case 70:
        case 72:
          value = 3;
          break;
  
        case 68:
        case 71:
          value = 4;
          break;
  
        default:
          value = 2;
      }
  
      for (index = 0; index < 47; index++) {
        test.push({
          k: chr + index,
          v: value
        });
      }
    }
  
    test.sort(function (a, b) {
      return b.v - a.v;
    });
  
    for (index = 0; index < test.length; index++) {
      chr = test[index].k.charAt(0);
      if (result.charAt(result.length - 1) !== chr) result += chr;
    }
  
    return result !== 'DGBEFHACIJK';
  });
  var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;
  
  var getSortCompare = function getSortCompare(comparefn) {
    return function (x, y) {
      if (y === undefined) return -1;
      if (x === undefined) return 1;
      if (comparefn !== undefined) return +comparefn(x, y) || 0;
      return String(x) > String(y) ? 1 : -1;
    };
  }; // `Array.prototype.sort` method
  // https://tc39.es/ecma262/#sec-array.prototype.sort
  
  
  $({
    target: 'Array',
    proto: true,
    forced: FORCED
  }, {
    sort: function sort(comparefn) {
      if (comparefn !== undefined) aFunction(comparefn);
      var array = toObject(this);
      if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);
      var items = [];
      var arrayLength = toLength(array.length);
      var itemsLength, index;
  
      for (index = 0; index < arrayLength; index++) {
        if (index in array) items.push(array[index]);
      }
  
      items = internalSort(items, getSortCompare(comparefn));
      itemsLength = items.length;
      index = 0;
  
      while (index < itemsLength) {
        array[index] = items[index++];
      }
  
      while (index < arrayLength) {
        delete array[index++];
      }
  
      return array;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.array.unscopables.flat-map.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/core-js/modules/es.array.unscopables.flat-map.js ***!
    \***********************************************************************/
  /***/ ((__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__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js"); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
  
  
  addToUnscopables('flatMap');
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.number.parse-int.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/modules/es.number.parse-int.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var parseInt = __webpack_require__(/*! ../internals/number-parse-int */ "./node_modules/core-js/internals/number-parse-int.js"); // `Number.parseInt` method
  // https://tc39.es/ecma262/#sec-number.parseint
  // eslint-disable-next-line es/no-number-parseint -- required for testing
  
  
  $({
    target: 'Number',
    stat: true,
    forced: Number.parseInt != parseInt
  }, {
    parseInt: parseInt
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.object.assign.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/modules/es.object.assign.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var assign = __webpack_require__(/*! ../internals/object-assign */ "./node_modules/core-js/internals/object-assign.js"); // `Object.assign` method
  // https://tc39.es/ecma262/#sec-object.assign
  // eslint-disable-next-line es/no-object-assign -- required for testing
  
  
  $({
    target: 'Object',
    stat: true,
    forced: Object.assign !== assign
  }, {
    assign: assign
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.object.entries.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/modules/es.object.entries.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var $entries = (__webpack_require__(/*! ../internals/object-to-array */ "./node_modules/core-js/internals/object-to-array.js").entries); // `Object.entries` method
  // https://tc39.es/ecma262/#sec-object.entries
  
  
  $({
    target: 'Object',
    stat: true
  }, {
    entries: function entries(O) {
      return $entries(O);
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.object.from-entries.js":
  /*!****************************************************************!*\
    !*** ./node_modules/core-js/modules/es.object.from-entries.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js");
  
  var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js"); // `Object.fromEntries` method
  // https://github.com/tc39/proposal-object-from-entries
  
  
  $({
    target: 'Object',
    stat: true
  }, {
    fromEntries: function fromEntries(iterable) {
      var obj = {};
      iterate(iterable, function (k, v) {
        createProperty(obj, k, v);
      }, {
        AS_ENTRIES: true
      });
      return obj;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js");
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
  
  var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js"); // `Object.getOwnPropertyDescriptors` method
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
  
  
  $({
    target: 'Object',
    stat: true,
    sham: !DESCRIPTORS
  }, {
    getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
      var O = toIndexedObject(object);
      var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
      var keys = ownKeys(O);
      var result = {};
      var index = 0;
      var key, descriptor;
  
      while (keys.length > index) {
        descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);
        if (descriptor !== undefined) createProperty(result, key, descriptor);
      }
  
      return result;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.object.to-string.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/modules/es.object.to-string.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var toString = __webpack_require__(/*! ../internals/object-to-string */ "./node_modules/core-js/internals/object-to-string.js"); // `Object.prototype.toString` method
  // https://tc39.es/ecma262/#sec-object.prototype.tostring
  
  
  if (!TO_STRING_TAG_SUPPORT) {
    redefine(Object.prototype, 'toString', toString, {
      unsafe: true
    });
  }
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.object.values.js":
  /*!**********************************************************!*\
    !*** ./node_modules/core-js/modules/es.object.values.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var $values = (__webpack_require__(/*! ../internals/object-to-array */ "./node_modules/core-js/internals/object-to-array.js").values); // `Object.values` method
  // https://tc39.es/ecma262/#sec-object.values
  
  
  $({
    target: 'Object',
    stat: true
  }, {
    values: function values(O) {
      return $values(O);
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.reflect.construct.js":
  /*!**************************************************************!*\
    !*** ./node_modules/core-js/modules/es.reflect.construct.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  
  var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
  
  var bind = __webpack_require__(/*! ../internals/function-bind */ "./node_modules/core-js/internals/function-bind.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var nativeConstruct = getBuiltIn('Reflect', 'construct'); // `Reflect.construct` method
  // https://tc39.es/ecma262/#sec-reflect.construct
  // MS Edge supports only 2 arguments and argumentsList argument is optional
  // FF Nightly sets third argument as `new.target`, but does not create `this` from it
  
  var NEW_TARGET_BUG = fails(function () {
    function F() {
      /* empty */
    }
  
    return !(nativeConstruct(function () {
      /* empty */
    }, [], F) instanceof F);
  });
  var ARGS_BUG = !fails(function () {
    nativeConstruct(function () {
      /* empty */
    });
  });
  var FORCED = NEW_TARGET_BUG || ARGS_BUG;
  $({
    target: 'Reflect',
    stat: true,
    forced: FORCED,
    sham: FORCED
  }, {
    construct: function construct(Target, args
    /* , newTarget */
    ) {
      aFunction(Target);
      anObject(args);
      var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
      if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
  
      if (Target == newTarget) {
        // w/o altered newTarget, optimization for 0-4 arguments
        switch (args.length) {
          case 0:
            return new Target();
  
          case 1:
            return new Target(args[0]);
  
          case 2:
            return new Target(args[0], args[1]);
  
          case 3:
            return new Target(args[0], args[1], args[2]);
  
          case 4:
            return new Target(args[0], args[1], args[2], args[3]);
        } // w/o altered newTarget, lot of arguments case
  
  
        var $args = [null];
        $args.push.apply($args, args);
        return new (bind.apply(Target, $args))();
      } // with altered newTarget, not support built-in constructors
  
  
      var proto = newTarget.prototype;
      var instance = create(isObject(proto) ? proto : Object.prototype);
      var result = Function.apply.call(Target, instance, args);
      return isObject(result) ? result : instance;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.regexp.constructor.js":
  /*!***************************************************************!*\
    !*** ./node_modules/core-js/modules/es.regexp.constructor.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
  
  var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "./node_modules/core-js/internals/inherit-if-required.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
  
  var getOwnPropertyNames = (__webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f);
  
  var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js");
  
  var getFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
  
  var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var enforceInternalState = (__webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").enforce);
  
  var setSpecies = __webpack_require__(/*! ../internals/set-species */ "./node_modules/core-js/internals/set-species.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var UNSUPPORTED_DOT_ALL = __webpack_require__(/*! ../internals/regexp-unsupported-dot-all */ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js");
  
  var UNSUPPORTED_NCG = __webpack_require__(/*! ../internals/regexp-unsupported-ncg */ "./node_modules/core-js/internals/regexp-unsupported-ncg.js");
  
  var MATCH = wellKnownSymbol('match');
  var NativeRegExp = global.RegExp;
  var RegExpPrototype = NativeRegExp.prototype; // TODO: Use only propper RegExpIdentifierName
  
  var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
  var re1 = /a/g;
  var re2 = /a/g; // "new" should create a new object, old webkit bug
  
  var CORRECT_NEW = new NativeRegExp(re1) !== re1;
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
  var BASE_FORCED = DESCRIPTORS && (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {
    re2[MATCH] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match
  
    return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
  }));
  
  var handleDotAll = function handleDotAll(string) {
    var length = string.length;
    var index = 0;
    var result = '';
    var brackets = false;
    var chr;
  
    for (; index <= length; index++) {
      chr = string.charAt(index);
  
      if (chr === '\\') {
        result += chr + string.charAt(++index);
        continue;
      }
  
      if (!brackets && chr === '.') {
        result += '[\\s\\S]';
      } else {
        if (chr === '[') {
          brackets = true;
        } else if (chr === ']') {
          brackets = false;
        }
  
        result += chr;
      }
    }
  
    return result;
  };
  
  var handleNCG = function handleNCG(string) {
    var length = string.length;
    var index = 0;
    var result = '';
    var named = [];
    var names = {};
    var brackets = false;
    var ncg = false;
    var groupid = 0;
    var groupname = '';
    var chr;
  
    for (; index <= length; index++) {
      chr = string.charAt(index);
  
      if (chr === '\\') {
        chr = chr + string.charAt(++index);
      } else if (chr === ']') {
        brackets = false;
      } else if (!brackets) switch (true) {
        case chr === '[':
          brackets = true;
          break;
  
        case chr === '(':
          if (IS_NCG.test(string.slice(index + 1))) {
            index += 2;
            ncg = true;
          }
  
          result += chr;
          groupid++;
          continue;
  
        case chr === '>' && ncg:
          if (groupname === '' || has(names, groupname)) {
            throw new SyntaxError('Invalid capture group name');
          }
  
          names[groupname] = true;
          named.push([groupname, groupid]);
          ncg = false;
          groupname = '';
          continue;
      }
  
      if (ncg) groupname += chr;else result += chr;
    }
  
    return [result, named];
  }; // `RegExp` constructor
  // https://tc39.es/ecma262/#sec-regexp-constructor
  
  
  if (isForced('RegExp', BASE_FORCED)) {
    var RegExpWrapper = function RegExp(pattern, flags) {
      var thisIsRegExp = this instanceof RegExpWrapper;
      var patternIsRegExp = isRegExp(pattern);
      var flagsAreUndefined = flags === undefined;
      var groups = [];
      var rawPattern = pattern;
      var rawFlags, dotAll, sticky, handled, result, state;
  
      if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {
        return pattern;
      }
  
      if (patternIsRegExp || pattern instanceof RegExpWrapper) {
        pattern = pattern.source;
        if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags.call(rawPattern);
      }
  
      pattern = pattern === undefined ? '' : String(pattern);
      flags = flags === undefined ? '' : String(flags);
      rawPattern = pattern;
  
      if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {
        dotAll = !!flags && flags.indexOf('s') > -1;
        if (dotAll) flags = flags.replace(/s/g, '');
      }
  
      rawFlags = flags;
  
      if (UNSUPPORTED_Y && 'sticky' in re1) {
        sticky = !!flags && flags.indexOf('y') > -1;
        if (sticky) flags = flags.replace(/y/g, '');
      }
  
      if (UNSUPPORTED_NCG) {
        handled = handleNCG(pattern);
        pattern = handled[0];
        groups = handled[1];
      }
  
      result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);
  
      if (dotAll || sticky || groups.length) {
        state = enforceInternalState(result);
  
        if (dotAll) {
          state.dotAll = true;
          state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);
        }
  
        if (sticky) state.sticky = true;
        if (groups.length) state.groups = groups;
      }
  
      if (pattern !== rawPattern) try {
        // fails in old engines, but we have no alternatives for unsupported regex syntax
        createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);
      } catch (error) {
        /* empty */
      }
      return result;
    };
  
    var proxy = function proxy(key) {
      key in RegExpWrapper || defineProperty(RegExpWrapper, key, {
        configurable: true,
        get: function get() {
          return NativeRegExp[key];
        },
        set: function set(it) {
          NativeRegExp[key] = it;
        }
      });
    };
  
    for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {
      proxy(keys[index++]);
    }
  
    RegExpPrototype.constructor = RegExpWrapper;
    RegExpWrapper.prototype = RegExpPrototype;
    redefine(global, 'RegExp', RegExpWrapper);
  } // https://tc39.es/ecma262/#sec-get-regexp-@@species
  
  
  setSpecies('RegExp');
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.regexp.exec.js":
  /*!********************************************************!*\
    !*** ./node_modules/core-js/modules/es.regexp.exec.js ***!
    \********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var exec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); // `RegExp.prototype.exec` method
  // https://tc39.es/ecma262/#sec-regexp.prototype.exec
  
  
  $({
    target: 'RegExp',
    proto: true,
    forced: /./.exec !== exec
  }, {
    exec: exec
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.regexp.to-string.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var flags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
  
  var TO_STRING = 'toString';
  var RegExpPrototype = RegExp.prototype;
  var nativeToString = RegExpPrototype[TO_STRING];
  var NOT_GENERIC = fails(function () {
    return nativeToString.call({
      source: 'a',
      flags: 'b'
    }) != '/a/b';
  }); // FF44- RegExp#toString has a wrong name
  
  var INCORRECT_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() {
      var R = anObject(this);
      var p = String(R.source);
      var rf = R.flags;
      var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
      return '/' + p + '/' + f;
    }, {
      unsafe: true
    });
  }
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.string.ends-with.js":
  /*!*************************************************************!*\
    !*** ./node_modules/core-js/modules/es.string.ends-with.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var notARegExp = __webpack_require__(/*! ../internals/not-a-regexp */ "./node_modules/core-js/internals/not-a-regexp.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  var correctIsRegExpLogic = __webpack_require__(/*! ../internals/correct-is-regexp-logic */ "./node_modules/core-js/internals/correct-is-regexp-logic.js");
  
  var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); // eslint-disable-next-line es/no-string-prototype-endswith -- safe
  
  
  var $endsWith = ''.endsWith;
  var min = Math.min;
  var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702
  
  var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
    var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');
    return descriptor && !descriptor.writable;
  }(); // `String.prototype.endsWith` method
  // https://tc39.es/ecma262/#sec-string.prototype.endswith
  
  $({
    target: 'String',
    proto: true,
    forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC
  }, {
    endsWith: function endsWith(searchString
    /* , endPosition = @length */
    ) {
      var that = String(requireObjectCoercible(this));
      notARegExp(searchString);
      var endPosition = arguments.length > 1 ? arguments[1] : undefined;
      var len = toLength(that.length);
      var end = endPosition === undefined ? len : min(toLength(endPosition), len);
      var search = String(searchString);
      return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.string.includes.js":
  /*!************************************************************!*\
    !*** ./node_modules/core-js/modules/es.string.includes.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var notARegExp = __webpack_require__(/*! ../internals/not-a-regexp */ "./node_modules/core-js/internals/not-a-regexp.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  var correctIsRegExpLogic = __webpack_require__(/*! ../internals/correct-is-regexp-logic */ "./node_modules/core-js/internals/correct-is-regexp-logic.js"); // `String.prototype.includes` method
  // https://tc39.es/ecma262/#sec-string.prototype.includes
  
  
  $({
    target: 'String',
    proto: true,
    forced: !correctIsRegExpLogic('includes')
  }, {
    includes: function includes(searchString
    /* , position = 0 */
    ) {
      return !!~String(requireObjectCoercible(this)).indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.string.match.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/modules/es.string.match.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
  
  var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js"); // @@match logic
  
  
  fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {
    return [// `String.prototype.match` method
    // https://tc39.es/ecma262/#sec-string.prototype.match
    function match(regexp) {
      var O = requireObjectCoercible(this);
      var matcher = regexp == undefined ? undefined : regexp[MATCH];
      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
    }, // `RegExp.prototype[@@match]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
    function (string) {
      var res = maybeCallNative(nativeMatch, this, string);
      if (res.done) return res.value;
      var rx = anObject(this);
      var S = String(string);
      if (!rx.global) return regExpExec(rx, S);
      var fullUnicode = rx.unicode;
      rx.lastIndex = 0;
      var A = [];
      var n = 0;
      var result;
  
      while ((result = regExpExec(rx, S)) !== null) {
        var matchStr = String(result[0]);
        A[n] = matchStr;
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
        n++;
      }
  
      return n === 0 ? null : A;
    }];
  });
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.string.replace.js":
  /*!***********************************************************!*\
    !*** ./node_modules/core-js/modules/es.string.replace.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
  
  var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ "./node_modules/core-js/internals/get-substitution.js");
  
  var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var REPLACE = wellKnownSymbol('replace');
  var max = Math.max;
  var min = Math.min;
  
  var maybeToString = function maybeToString(it) {
    return it === undefined ? it : String(it);
  }; // IE <= 11 replaces $0 with the whole match, as if it was $&
  // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
  
  
  var REPLACE_KEEPS_$0 = function () {
    // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
    return 'a'.replace(/./, '$0') === '$0';
  }(); // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
  
  
  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = function () {
    if (/./[REPLACE]) {
      return /./[REPLACE]('a', '$0') === '';
    }
  
    return false;
  }();
  
  var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
    var re = /./;
  
    re.exec = function () {
      var result = [];
      result.groups = {
        a: '7'
      };
      return result;
    };
  
    return ''.replace(re, '$<a>') !== '7';
  }); // @@replace logic
  
  fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {
    var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
    return [// `String.prototype.replace` method
    // https://tc39.es/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = requireObjectCoercible(this);
      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
      return replacer !== undefined ? replacer.call(searchValue, O, replaceValue) : nativeReplace.call(String(O), searchValue, replaceValue);
    }, // `RegExp.prototype[@@replace]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
    function (string, replaceValue) {
      if (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 && replaceValue.indexOf('$<') === -1) {
        var res = maybeCallNative(nativeReplace, this, string, replaceValue);
        if (res.done) return res.value;
      }
  
      var rx = anObject(this);
      var S = String(string);
      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);
      var global = rx.global;
  
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
  
      var results = [];
  
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;
        results.push(result);
        if (!global) break;
        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }
  
      var accumulatedResult = '';
      var nextSourcePosition = 0;
  
      for (var i = 0; i < results.length; i++) {
        result = results[i];
        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = []; // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
  
        for (var j = 1; j < result.length; j++) {
          captures.push(maybeToString(result[j]));
        }
  
        var namedCaptures = result.groups;
  
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
  
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
  
      return accumulatedResult + S.slice(nextSourcePosition);
    }];
  }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.string.split.js":
  /*!*********************************************************!*\
    !*** ./node_modules/core-js/modules/es.string.split.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
  
  var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  
  var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js");
  
  var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
  
  var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  
  var callRegExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
  
  var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
  
  var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
  var arrayPush = [].push;
  var min = Math.min;
  var MAX_UINT32 = 0xFFFFFFFF; // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
  // Weex JS has frozen built-in prototypes, so use try / catch wrapper
  
  var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
    // eslint-disable-next-line regexp/no-empty-group -- required for testing
    var re = /(?:)/;
    var originalExec = re.exec;
  
    re.exec = function () {
      return originalExec.apply(this, arguments);
    };
  
    var result = 'ab'.split(re);
    return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
  }); // @@split logic
  
  fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {
    var internalSplit;
  
    if ('abbc'.split(/(b)*/)[1] == 'c' || // eslint-disable-next-line regexp/no-empty-group -- required for testing
    'test'.split(/(?:)/, -1).length != 4 || 'ab'.split(/(?:ab)*/).length != 2 || '.'.split(/(.?)(.?)/).length != 4 || // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
    '.'.split(/()()/).length > 1 || ''.split(/.?/).length) {
      // based on es5-shim implementation, need to rework it
      internalSplit = function internalSplit(separator, limit) {
        var string = String(requireObjectCoercible(this));
        var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
        if (lim === 0) return [];
        if (separator === undefined) return [string]; // If `separator` is not a regex, use native split
  
        if (!isRegExp(separator)) {
          return nativeSplit.call(string, separator, lim);
        }
  
        var output = [];
        var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : '');
        var lastLastIndex = 0; // Make `global` and avoid `lastIndex` issues by working with a copy
  
        var separatorCopy = new RegExp(separator.source, flags + 'g');
        var match, lastIndex, lastLength;
  
        while (match = regexpExec.call(separatorCopy, string)) {
          lastIndex = separatorCopy.lastIndex;
  
          if (lastIndex > lastLastIndex) {
            output.push(string.slice(lastLastIndex, match.index));
            if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
            lastLength = match[0].length;
            lastLastIndex = lastIndex;
            if (output.length >= lim) break;
          }
  
          if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
        }
  
        if (lastLastIndex === string.length) {
          if (lastLength || !separatorCopy.test('')) output.push('');
        } else output.push(string.slice(lastLastIndex));
  
        return output.length > lim ? output.slice(0, lim) : output;
      }; // Chakra, V8
  
    } else if ('0'.split(undefined, 0).length) {
      internalSplit = function internalSplit(separator, limit) {
        return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
      };
    } else internalSplit = nativeSplit;
  
    return [// `String.prototype.split` method
    // https://tc39.es/ecma262/#sec-string.prototype.split
    function split(separator, limit) {
      var O = requireObjectCoercible(this);
      var splitter = separator == undefined ? undefined : separator[SPLIT];
      return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit);
    }, // `RegExp.prototype[@@split]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
    //
    // NOTE: This cannot be properly polyfilled in engines that don't support
    // the 'y' flag.
    function (string, limit) {
      var res = maybeCallNative(internalSplit, this, string, limit, internalSplit !== nativeSplit);
      if (res.done) return res.value;
      var rx = anObject(this);
      var S = String(string);
      var C = speciesConstructor(rx, RegExp);
      var unicodeMatching = rx.unicode;
      var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (UNSUPPORTED_Y ? 'g' : 'y'); // ^(? + rx + ) is needed, in combination with some S slicing, to
      // simulate the 'y' flag.
  
      var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);
      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
      if (lim === 0) return [];
      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
      var p = 0;
      var q = 0;
      var A = [];
  
      while (q < S.length) {
        splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;
        var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);
        var e;
  
        if (z === null || (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p) {
          q = advanceStringIndex(S, q, unicodeMatching);
        } else {
          A.push(S.slice(p, q));
          if (A.length === lim) return A;
  
          for (var i = 1; i <= z.length - 1; i++) {
            A.push(z[i]);
            if (A.length === lim) return A;
          }
  
          q = p = e;
        }
      }
  
      A.push(S.slice(p));
      return A;
    }];
  }, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.symbol.description.js":
  /*!***************************************************************!*\
    !*** ./node_modules/core-js/modules/es.symbol.description.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  // `Symbol.prototype.description` getter
  // https://tc39.es/ecma262/#sec-symbol.prototype.description
  
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
  
  var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js");
  
  var NativeSymbol = global.Symbol;
  
  if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || // Safari 12 bug
  NativeSymbol().description !== undefined)) {
    var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description
  
    var SymbolWrapper = function _Symbol() {
      var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
      var result = this instanceof SymbolWrapper ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
      : description === undefined ? NativeSymbol() : NativeSymbol(description);
      if (description === '') EmptyStringDescriptionStore[result] = true;
      return result;
    };
  
    copyConstructorProperties(SymbolWrapper, NativeSymbol);
    var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
    symbolPrototype.constructor = SymbolWrapper;
    var symbolToString = symbolPrototype.toString;
  
    var _native = String(NativeSymbol('test')) == 'Symbol(test)';
  
    var regexp = /^Symbol\((.*)\)[^)]+$/;
    defineProperty(symbolPrototype, 'description', {
      configurable: true,
      get: function description() {
        var symbol = isObject(this) ? this.valueOf() : this;
        var string = symbolToString.call(symbol);
        if (has(EmptyStringDescriptionStore, symbol)) return '';
        var desc = _native ? string.slice(7, -1) : string.replace(regexp, '$1');
        return desc === '' ? undefined : desc;
      }
    });
    $({
      global: true,
      forced: true
    }, {
      Symbol: SymbolWrapper
    });
  }
  
  /***/ }),
  
  /***/ "./node_modules/core-js/modules/es.symbol.js":
  /*!***************************************************!*\
    !*** ./node_modules/core-js/modules/es.symbol.js ***!
    \***************************************************/
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  
  var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
  
  var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  
  var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
  
  var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  
  var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
  
  var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js");
  
  var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  
  var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
  
  var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
  
  var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  
  var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  
  var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  
  var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
  
  var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
  
  var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
  
  var nativeObjectCreate = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
  
  var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
  
  var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js");
  
  var getOwnPropertyNamesExternal = __webpack_require__(/*! ../internals/object-get-own-property-names-external */ "./node_modules/core-js/internals/object-get-own-property-names-external.js");
  
  var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
  
  var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
  
  var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  
  var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
  
  var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
  
  var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  
  var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
  
  var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
  
  var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
  
  var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
  
  var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  
  var wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ "./node_modules/core-js/internals/well-known-symbol-wrapped.js");
  
  var defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ "./node_modules/core-js/internals/define-well-known-symbol.js");
  
  var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
  
  var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
  
  var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").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];
  var $Symbol = global.Symbol;
  var $stringify = getBuiltIn('JSON', 'stringify');
  var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
  var nativeDefineProperty = definePropertyModule.f;
  var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
  var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
  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');
  var QObject = global.QObject; // 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
  
  var setSymbolDescriptor = DESCRIPTORS && fails(function () {
    return nativeObjectCreate(nativeDefineProperty({}, 'a', {
      get: function get() {
        return nativeDefineProperty(this, 'a', {
          value: 7
        }).a;
      }
    })).a != 7;
  }) ? function (O, P, Attributes) {
    var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
    if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
    nativeDefineProperty(O, P, Attributes);
  
    if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
      nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
    }
  } : nativeDefineProperty;
  
  var wrap = function wrap(tag, description) {
    var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
    setInternalState(symbol, {
      type: SYMBOL,
      tag: tag,
      description: description
    });
    if (!DESCRIPTORS) symbol.description = description;
    return symbol;
  };
  
  var isSymbol = USE_SYMBOL_AS_UID ? function (it) {
    return _typeof(it) == 'symbol';
  } : function (it) {
    return Object(it) instanceof $Symbol;
  };
  
  var $defineProperty = function defineProperty(O, P, Attributes) {
    if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
    anObject(O);
    var key = toPrimitive(P, true);
    anObject(Attributes);
  
    if (has(AllSymbols, key)) {
      if (!Attributes.enumerable) {
        if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
        O[HIDDEN][key] = true;
      } else {
        if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
        Attributes = nativeObjectCreate(Attributes, {
          enumerable: createPropertyDescriptor(0, false)
        });
      }
  
      return setSymbolDescriptor(O, key, Attributes);
    }
  
    return nativeDefineProperty(O, key, Attributes);
  };
  
  var $defineProperties = function defineProperties(O, Properties) {
    anObject(O);
    var properties = toIndexedObject(Properties);
    var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
    $forEach(keys, function (key) {
      if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
    });
    return O;
  };
  
  var $create = function create(O, Properties) {
    return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
  };
  
  var $propertyIsEnumerable = function propertyIsEnumerable(V) {
    var P = toPrimitive(V, true);
    var enumerable = nativePropertyIsEnumerable.call(this, P);
    if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
    return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
  };
  
  var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
    var it = toIndexedObject(O);
    var key = toPrimitive(P, true);
    if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
    var descriptor = nativeGetOwnPropertyDescriptor(it, key);
  
    if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
      descriptor.enumerable = true;
    }
  
    return descriptor;
  };
  
  var $getOwnPropertyNames = function getOwnPropertyNames(O) {
    var names = nativeGetOwnPropertyNames(toIndexedObject(O));
    var result = [];
    $forEach(names, function (key) {
      if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
    });
    return result;
  };
  
  var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
    var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
    var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
    var result = [];
    $forEach(names, function (key) {
      if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
        result.push(AllSymbols[key]);
      }
    });
    return result;
  }; // `Symbol` constructor
  // https://tc39.es/ecma262/#sec-symbol-constructor
  
  
  if (!NATIVE_SYMBOL) {
    $Symbol = function _Symbol() {
      if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
      var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
      var tag = uid(description);
  
      var setter = function setter(value) {
        if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
        if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
        setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
      };
  
      if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, {
        configurable: true,
        set: setter
      });
      return wrap(tag, description);
    };
  
    redefine($Symbol[PROTOTYPE], 'toString', function toString() {
      return getInternalState(this).tag;
    });
    redefine($Symbol, 'withoutSetter', function (description) {
      return wrap(uid(description), description);
    });
    propertyIsEnumerableModule.f = $propertyIsEnumerable;
    definePropertyModule.f = $defineProperty;
    getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
    getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
    getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
  
    wrappedWellKnownSymbolModule.f = function (name) {
      return wrap(wellKnownSymbol(name), name);
    };
  
    if (DESCRIPTORS) {
      // https://github.com/tc39/proposal-Symbol-description
      nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
        configurable: true,
        get: function description() {
          return getInternalState(this).description;
        }
      });
  
      if (!IS_PURE) {
        redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, {
          unsafe: true
        });
      }
    }
  }
  
  $({
    global: true,
    wrap: true,
    forced: !NATIVE_SYMBOL,
    sham: !NATIVE_SYMBOL
  }, {
    Symbol: $Symbol
  });
  $forEach(objectKeys(WellKnownSymbolsStore), function (name) {
    defineWellKnownSymbol(name);
  });
  $({
    target: SYMBOL,
    stat: true,
    forced: !NATIVE_SYMBOL
  }, {
    // `Symbol.for` method
    // https://tc39.es/ecma262/#sec-symbol.for
    'for': function _for(key) {
      var string = String(key);
      if (has(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 (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
    },
    useSetter: function useSetter() {
      USE_SETTER = true;
    },
    useSimple: function useSimple() {
      USE_SETTER = false;
    }
  });
  $({
    target: 'Object',
    stat: true,
    forced: !NATIVE_SYMBOL,
    sham: !DESCRIPTORS
  }, {
    // `Object.create` method
    // https://tc39.es/ecma262/#sec-object.create
    create: $create,
    // `Object.defineProperty` method
    // https://tc39.es/ecma262/#sec-object.defineproperty
    defineProperty: $defineProperty,
    // `Object.defineProperties` method
    // https://tc39.es/ecma262/#sec-object.defineproperties
    defineProperties: $defineProperties,
    // `Object.getOwnPropertyDescriptor` method
    // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
    getOwnPropertyDescriptor: $getOwnPropertyDescriptor
  });
  $({
    target: 'Object',
    stat: true,
    forced: !NATIVE_SYMBOL
  }, {
    // `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 = [it];
        var index = 1;
        var $replacer;
  
        while (arguments.length > index) {
          args.push(arguments[index++]);
        }
  
        $replacer = replacer;
        if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
  
        if (!isArray(replacer)) replacer = function replacer(key, value) {
          if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
          if (!isSymbol(value)) return value;
        };
        args[1] = replacer;
        return $stringify.apply(null, args);
      }
    });
  } // `Symbol.prototype[@@toPrimitive]` method
  // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
  
  
  if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
    createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
  } // `Symbol.prototype[@@toStringTag]` property
  // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
  
  
  setToStringTag($Symbol, SYMBOL);
  hiddenKeys[HIDDEN] = true;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/Clan.js":
  /*!******************************************!*\
    !*** ./node_modules/libram/dist/Clan.js ***!
    \******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ "./node_modules/core-js/modules/es.reflect.construct.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.constructor.js */ "./node_modules/core-js/modules/es.regexp.constructor.js");
  
  __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.Clan = exports.ClanError = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.number.parse-int.js */ "./node_modules/core-js/modules/es.number.parse-int.js");
  
  __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  
  __webpack_require__(/*! core-js/modules/es.array.sort.js */ "./node_modules/core-js/modules/es.array.sort.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ./lib */ "./node_modules/libram/dist/lib.js");
  
  var _logger = _interopRequireDefault(__webpack_require__(/*! ./logger */ "./node_modules/libram/dist/logger.js"));
  
  var _utils = __webpack_require__(/*! ./utils */ "./node_modules/libram/dist/utils.js");
  
  var _class;
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      "default": obj
    };
  }
  
  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  }
  
  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }
  
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  }
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e2) {
            throw _e2;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e3) {
        didErr = true;
        err = _e3;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _iterableToArrayLimit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
  
    var _s, _e;
  
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
    var desc = {};
    Object.keys(descriptor).forEach(function (key) {
      desc[key] = descriptor[key];
    });
    desc.enumerable = !!desc.enumerable;
    desc.configurable = !!desc.configurable;
  
    if ('value' in desc || desc.initializer) {
      desc.writable = true;
    }
  
    desc = decorators.slice().reverse().reduce(function (desc, decorator) {
      return decorator(target, property, desc) || desc;
    }, desc);
  
    if (context && desc.initializer !== void 0) {
      desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
      desc.initializer = undefined;
    }
  
    if (desc.initializer === void 0) {
      Object.defineProperty(target, property, desc);
      desc = null;
    }
  
    return desc;
  }
  
  function _wrapRegExp() {
    _wrapRegExp = function _wrapRegExp(re, groups) {
      return new BabelRegExp(re, undefined, groups);
    };
  
    var _super = RegExp.prototype;
  
    var _groups = new WeakMap();
  
    function BabelRegExp(re, flags, groups) {
      var _this = new RegExp(re, flags);
  
      _groups.set(_this, groups || _groups.get(re));
  
      return _setPrototypeOf(_this, BabelRegExp.prototype);
    }
  
    _inherits(BabelRegExp, RegExp);
  
    BabelRegExp.prototype.exec = function (str) {
      var result = _super.exec.call(this, str);
  
      if (result) result.groups = buildGroups(result, this);
      return result;
    };
  
    BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
      if (typeof substitution === "string") {
        var groups = _groups.get(this);
  
        return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
          return "$" + groups[name];
        }));
      } else if (typeof substitution === "function") {
        var _this = this;
  
        return _super[Symbol.replace].call(this, str, function () {
          var args = arguments;
  
          if (_typeof(args[args.length - 1]) !== "object") {
            args = [].slice.call(args);
            args.push(buildGroups(args, _this));
          }
  
          return substitution.apply(this, args);
        });
      } else {
        return _super[Symbol.replace].call(this, str, substitution);
      }
    };
  
    function buildGroups(result, re) {
      var g = _groups.get(re);
  
      return Object.keys(g).reduce(function (groups, name) {
        groups[name] = result[g[name]];
        return groups;
      }, Object.create(null));
    }
  
    return _wrapRegExp.apply(this, arguments);
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }
  
    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }
  
  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();
  
    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;
  
      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;
  
        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }
  
      return _possibleConstructorReturn(this, result);
    };
  }
  
  function _possibleConstructorReturn(self, call) {
    if (call && (_typeof(call) === "object" || typeof call === "function")) {
      return call;
    }
  
    return _assertThisInitialized(self);
  }
  
  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }
  
    return self;
  }
  
  function _wrapNativeSuper(Class) {
    var _cache = typeof Map === "function" ? new Map() : undefined;
  
    _wrapNativeSuper = function _wrapNativeSuper(Class) {
      if (Class === null || !_isNativeFunction(Class)) return Class;
  
      if (typeof Class !== "function") {
        throw new TypeError("Super expression must either be null or a function");
      }
  
      if (typeof _cache !== "undefined") {
        if (_cache.has(Class)) return _cache.get(Class);
  
        _cache.set(Class, Wrapper);
      }
  
      function Wrapper() {
        return _construct(Class, arguments, _getPrototypeOf(this).constructor);
      }
  
      Wrapper.prototype = Object.create(Class.prototype, {
        constructor: {
          value: Wrapper,
          enumerable: false,
          writable: true,
          configurable: true
        }
      });
      return _setPrototypeOf(Wrapper, Class);
    };
  
    return _wrapNativeSuper(Class);
  }
  
  function _construct(Parent, args, Class) {
    if (_isNativeReflectConstruct()) {
      _construct = Reflect.construct;
    } else {
      _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) _setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }
  
    return _construct.apply(null, arguments);
  }
  
  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;
  
    try {
      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }
  
  function _isNativeFunction(fn) {
    return Function.toString.call(fn).indexOf("[native code]") !== -1;
  }
  
  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };
  
    return _setPrototypeOf(o, p);
  }
  
  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  var ClanError = /*#__PURE__*/function (_Error) {
    _inherits(ClanError, _Error);
  
    var _super = _createSuper(ClanError);
  
    function ClanError(message, reason) {
      var _this;
  
      _classCallCheck(this, ClanError);
  
      _this = _super.call(this, message);
  
      _defineProperty(_assertThisInitialized(_this), "reason", void 0);
  
      _this.reason = reason;
      Object.setPrototypeOf(_assertThisInitialized(_this), ClanError.prototype);
      return _this;
    }
  
    return ClanError;
  }( /*#__PURE__*/_wrapNativeSuper(Error)); // It would be fantastic to have this function properly typed
  // But until someone can work out how to do it, it gets the
  // comment blocks of shame
  
  /* eslint-disable */
  
  
  exports.ClanError = ClanError;
  
  function validate(target, propertyName, descriptor) {
    if (!(descriptor !== null && descriptor !== void 0 && descriptor.value)) return;
    var method = descriptor.value; // @ts-ignore
  
    descriptor.value = function () {
      // @ts-ignore
      if (this.id !== (0, _kolmafia.getClanId)()) {
        throw new Error("You are no longer a member of this clan");
      }
  
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return method.apply(this, args);
    };
  }
  /* eslint-enable */
  
  
  var clanIdCache = {};
  
  var toPlayerId = function toPlayerId(player) {
    return typeof player === "string" ? (0, _kolmafia.getPlayerId)(player) : player;
  };
  
  var LOG_FAX_PATTERN = /*#__PURE__*/_wrapRegExp(/([0-9]{2}\/[0-9]{2}\/[0-9]{2}, [0-9]{2}:[0-9]{2}(?:AM|PM): )<a (?:(?!>)[\s\S])+>((?:(?!<)[\s\S])+)<\/a>(?: faxed in a (.*?))<br>/, {
    monster: 3
  });
  
  var WHITELIST_DEGREE_PATTERN = /*#__PURE__*/_wrapRegExp(/(.*?) \(\xB0([0-9]+)\)/, {
    name: 1,
    degree: 2
  });
  
  var Clan = (_class = /*#__PURE__*/function () {
    function Clan(id, name) {
      _classCallCheck(this, Clan);
  
      _defineProperty(this, "id", void 0);
  
      _defineProperty(this, "name", void 0);
  
      this.id = id;
      this.name = name;
    }
    /**
     * Join clan
     */
  
  
    _createClass(Clan, [{
      key: "join",
      value: function join() {
        return Clan._join(this.id);
      }
    }, {
      key: "check",
      value: function check() {
        return (0, _kolmafia.visitUrl)("clan_hall.php").includes("<b>".concat(this.name, "</b>"));
      }
      /**
       * Return the monster that is currently in the current clan's fax machine if any
       */
  
    }, {
      key: "getCurrentFax",
      value: function getCurrentFax() {
        var logs = (0, _kolmafia.visitUrl)("clan_log.php");
        var lastFax = logs.match(LOG_FAX_PATTERN);
        if (!lastFax) return null;
  
        var _lastFax = _slicedToArray(lastFax, 4),
            monsterName = _lastFax[3];
  
        if (!monsterName) return null;
        return Monster.get(monsterName);
      }
      /**
       * List available ranks (name, degree and id) from the current clan
       */
  
    }, {
      key: "getRanks",
      value: function getRanks() {
        var page = (0, _kolmafia.visitUrl)("clan_whitelist.php");
        return (0, _kolmafia.xpath)(page, '//select[@name="level"]//option').map(function (option) {
          var validHtml = "<select>".concat(option, "</select>");
          var match = (0, _kolmafia.xpath)(validHtml, "//text()")[0].match(WHITELIST_DEGREE_PATTERN);
          var id = (0, _kolmafia.xpath)(validHtml, "//@value")[0];
          if (!match || !id) return null;
  
          var _match = _slicedToArray(match, 3),
              name = _match[1],
              degree = _match[2];
  
          return {
            name: name,
            degree: Number.parseInt(degree),
            id: Number.parseInt(id)
          };
        }).filter(_utils.notNull);
      }
      /**
       * Add a player to the current clan's whitelist.
       * If the player is already in the whitelist this will change their rank or title.
       * @param player Player id or name
       * @param rankName Rank to give the player. If not provided they will be given the lowest rank
       * @param title Title to give the player. If not provided, will be blank
       */
  
    }, {
      key: "addPlayerToWhitelist",
      value: function addPlayerToWhitelist(player, rankName) {
        var title = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
        var playerId = toPlayerId(player);
        var ranks = this.getRanks();
        var rank = rankName ? ranks.find(function (r) {
          return r.name === rankName;
        }) : ranks.sort(function (a, b) {
          return a.degree - b.degree;
        })[0];
        if (!rank) return false;
        var result = (0, _kolmafia.visitUrl)("clan_whitelist.php?action=add&pwd&addwho=".concat(playerId, "&level=").concat(rank.id, "&title=").concat(title));
        return result.includes("added to whitelist.") || result.includes("That player is already on the whitelist");
      }
      /**
       * Remove a player from the current clan's whitelist
       * @param player Player id or name
       */
  
    }, {
      key: "removePlayerFromWhitelist",
      value: function removePlayerFromWhitelist(player) {
        var playerId = toPlayerId(player);
        var result = (0, _kolmafia.visitUrl)("clan_whitelist.php?action=updatewl&pwd&who=".concat(playerId, "&remove=Remove"));
        return result.includes("Whitelist updated.");
      }
      /**
       * Return the amount of meat in the current clan's coffer.
       */
  
    }, {
      key: "getMeatInCoffer",
      value: function getMeatInCoffer() {
        var page = (0, _kolmafia.visitUrl)("clan_stash.php");
  
        var _ref = page.match(/Your <b>Clan Coffer<\/b> contains ([\d,]+) Meat./) || ["0", "0"],
            _ref2 = _slicedToArray(_ref, 2),
            meat = _ref2[1];
  
        return (0, _utils.parseNumber)(meat);
      }
      /**
       * Add the given amount of meat to the current clan's coffer.
       * @param amount Amount of meat to put in coffer
       */
  
    }, {
      key: "putMeatInCoffer",
      value: function putMeatInCoffer(amount) {
        var result = (0, _kolmafia.visitUrl)("clan_stash.php?pwd&action=contribute&howmuch=".concat(amount));
        return result.includes("You contributed");
      }
      /**
       * Take items from the stash
       *
       * This function will also take equivalent foldables if the original item cannot be found
       *
       * @param items Items to take
       * @returns Items successfully taken
       */
  
    }, {
      key: "take",
      value: function take(items) {
        var map = (0, _utils.arrayToCountedMap)(items);
        map.forEach(function (quantity, item) {
          var needed = Math.max(0, quantity - (0, _kolmafia.availableAmount)(item));
  
          if (needed === 0) {
            return map.set(item, 0);
          }
  
          var foldGroup = (0, _lib.getFoldGroup)(item);
  
          var _iterator = _createForOfIteratorHelper(foldGroup),
              _step;
  
          try {
            for (_iterator.s(); !(_step = _iterator.n()).done;) {
              var foldable = _step.value;
              var quantityToFold = Math.min(needed, (0, _kolmafia.availableAmount)(foldable));
  
              for (var _i3 = 0; _i3 < quantityToFold; _i3++) {
                (0, _kolmafia.cliExecute)("fold ".concat(item.name));
                needed--;
              }
  
              return map.set(item, needed);
            }
          } catch (err) {
            _iterator.e(err);
          } finally {
            _iterator.f();
          }
  
          (0, _kolmafia.refreshStash)();
  
          for (var _i2 = 0, _arr2 = [item].concat(_toConsumableArray(foldGroup)); _i2 < _arr2.length; _i2++) {
            var matchingItem = _arr2[_i2];
            var quantityToTake = Math.min(needed, (0, _kolmafia.stashAmount)(matchingItem));
            if (quantityToTake === 0) continue; // If we can't take from the stash, there's no sense in iterating through the whole fold group
  
            if (!(0, _kolmafia.takeStash)(quantityToTake, matchingItem)) return;
  
            if (matchingItem === item) {
              needed -= quantityToTake;
            } else {
              for (var i = 0; i < quantityToTake; i++) {
                (0, _kolmafia.cliExecute)("fold ".concat(matchingItem.name));
                needed--;
              }
            }
          }
        });
        return Array.isArray(items) ? (0, _utils.countedMapToArray)(map) : map;
      }
      /**
       * Put items in the stash
       * @param items Items to put in the stash
       * @returns Items successfully put in the stash
       */
  
    }, {
      key: "put",
      value: function put(items) {
        var map = (0, _utils.arrayToCountedMap)(items);
        if (!this.check()) throw new Error("Wanted to return ".concat((0, _utils.countedMapToString)(map), " to ").concat(this.name, " but KoLmafia's clan data is out of sync"));
        map.forEach(function (quantity, item) {
          (0, _kolmafia.retrieveItem)(quantity, item);
          var returned = Math.min(quantity, (0, _kolmafia.availableAmount)(item));
          (0, _kolmafia.putStash)(returned, item);
          map.set(item, quantity - returned);
        });
        return Array.isArray(items) ? (0, _utils.countedMapToArray)(map) : map;
      }
      /**
       * Return the monster that is currently in the current clan's fax machine if any
       */
  
    }, {
      key: "withStash",
      value: function withStash(items, callback) {
        var _this2 = this;
  
        var map = (0, _utils.arrayToCountedMap)(items);
        return Clan._withStash(function () {
          return _this2.take(map);
        }, function (borrowed) {
          return _this2.put(borrowed);
        }, callback);
      }
    }], [{
      key: "_join",
      value: function _join(id) {
        var result = (0, _kolmafia.visitUrl)("showclan.php?recruiter=1&whichclan=".concat(id, "&pwd&whichclan=").concat(id, "&action=joinclan&apply=Apply+to+this+Clan&confirm=on"));
  
        if (!result.includes("clanhalltop.gif")) {
          throw new Error("Could not join clan");
        }
  
        return Clan.get();
      }
    }, {
      key: "_withStash",
      value: function _withStash(borrowFn, // eslint-disable-next-line @typescript-eslint/no-explicit-any
      returnFn, // eslint-disable-next-line @typescript-eslint/no-explicit-any
      callback) {
        var borrowed = borrowFn();
        var map = (0, _utils.arrayToCountedMap)(borrowed);
  
        try {
          return callback(borrowed);
        } finally {
          if (map.size > 0) {
            var returned = (0, _utils.arrayToCountedMap)(returnFn(borrowed));
            map.forEach(function (quantity, item) {
              var remaining = quantity - (returned.get(item) || 0);
  
              if (remaining > 0) {
                map.set(item, remaining);
              } else {
                map["delete"](item);
              }
            });
  
            if (map.size > 0) {
              _logger["default"].error("Failed to return <b>".concat((0, _utils.countedMapToString)(map), "</b> to <b>").concat(this.name, "</b> stash"));
            }
          }
        }
      }
      /**
       * Join a clan and return its instance
       * @param clanIdOrName Clan id or name
       */
  
    }, {
      key: "join",
      value: function join(clanIdOrName) {
        var clanId;
  
        if (typeof clanIdOrName === "string") {
          var _clanName = clanIdOrName.toLowerCase();
  
          if (_clanName === (0, _kolmafia.getClanName)().toLowerCase()) {
            return Clan.get();
          }
  
          if (!(_clanName in clanIdCache)) {
            var clan = Clan.getWhitelisted().find(function (c) {
              return c.name.toLowerCase() === _clanName;
            });
  
            if (!clan) {
              throw new Error("Player is not whitelisted to clan");
            }
  
            clanIdCache[_clanName] = clan.id;
          }
  
          clanId = clanIdCache[_clanName];
        } else {
          clanId = clanIdOrName;
  
          if (clanId === (0, _kolmafia.getClanId)()) {
            return Clan.get();
          }
        }
  
        return Clan._join(clanId);
      }
      /**
       * Execute callback as a member of a clan
       * and then restore prior membership
       * @param clanIdOrName Clan id or name
       */
  
    }, {
      key: "with",
      value: function _with(clanIdOrName, callback) {
        var startingClan = Clan.get();
        var clan = Clan.join(clanIdOrName);
  
        try {
          return callback(clan);
        } finally {
          startingClan.join();
        }
      }
      /**
       * Execute callback with items from a clan stash
       * and then restore those items to the stash
       *
       * During the execution of the callback, player will not be in the stash clan
       *
       * @param clanIdOrName Clan id or name
       */
  
    }, {
      key: "withStash",
      value: function withStash(clanIdOrName, items, // eslint-disable-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
      callback) {
        return Clan._withStash(function () {
          return Clan["with"](clanIdOrName, function (clan) {
            return clan.take(items);
          });
        }, function (borrowed) {
          return Clan["with"](clanIdOrName, function (clan) {
            return clan.put(borrowed);
          });
        }, callback);
      }
      /**
       * Return player's current Clan
       */
  
    }, {
      key: "get",
      value: function get() {
        return new Clan((0, _kolmafia.getClanId)(), (0, _kolmafia.getClanName)());
      }
      /**
       * Get list of clans to which the player is whitelisted
       */
  
    }, {
      key: "getWhitelisted",
      value: function getWhitelisted() {
        var page = (0, _kolmafia.visitUrl)("clan_signup.php");
        return (0, _kolmafia.xpath)(page, '//select[@name="whichclan"]//option').map(function (option) {
          var validHtml = "<select>".concat(option, "</select>");
          var id = Number.parseInt((0, _kolmafia.xpath)(validHtml, "//@value")[0]);
          var name = (0, _kolmafia.xpath)(validHtml, "//text()")[0];
          return new Clan(id, name);
        });
      }
    }]);
  
    return Clan;
  }(), (_applyDecoratedDescriptor(_class.prototype, "getCurrentFax", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "getCurrentFax"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getRanks", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "getRanks"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "addPlayerToWhitelist", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "addPlayerToWhitelist"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "removePlayerFromWhitelist", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "removePlayerFromWhitelist"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getMeatInCoffer", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "getMeatInCoffer"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "putMeatInCoffer", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "putMeatInCoffer"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "take", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "take"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "put", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "put"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "withStash", [validate], Object.getOwnPropertyDescriptor(_class.prototype, "withStash"), _class.prototype)), _class);
  exports.Clan = Clan;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/Copier.js":
  /*!********************************************!*\
    !*** ./node_modules/libram/dist/Copier.js ***!
    \********************************************/
  /***/ ((__unused_webpack_module, exports) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.Copier = void 0;
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  var Copier = function Copier(couldCopy, prepare, canCopy, copiedMonster, fightCopy) {
    _classCallCheck(this, Copier);
  
    _defineProperty(this, "couldCopy", void 0);
  
    _defineProperty(this, "prepare", void 0);
  
    _defineProperty(this, "canCopy", void 0);
  
    _defineProperty(this, "copiedMonster", void 0);
  
    _defineProperty(this, "fightCopy", null);
  
    this.couldCopy = couldCopy;
    this.prepare = prepare;
    this.canCopy = canCopy;
    this.copiedMonster = copiedMonster;
    if (fightCopy) this.fightCopy = fightCopy;
  } // static PrintScreenButton = new Copier(
  //   $item`print screen button`,
  //   null,
  //   $item`screencapped monster`,
  //   () => property.getMonster(`screencappedMonster`),
  //   () => 1,
  //   () => use($item`screencapped monster`)
  // );
  // static PulledGreenTaffy = new Copier(
  //   $item`pulled green taffy`,
  //   null,
  //   $item`envyfish egg`,
  //   () => property.getMonster(`screencappedMonster`),
  //   () => (property.getBoolean("_envyfishEggUsed") ? 0 : 1),
  //   () => use($item`envyfish egg`)
  // );
  ;
  
  exports.Copier = Copier;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/Dungeon.js":
  /*!*********************************************!*\
    !*** ./node_modules/libram/dist/Dungeon.js ***!
    \*********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.Dreadsylvania = exports.SlimeTube = exports.Hobopolis = exports["default"] = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _Clan = __webpack_require__(/*! ./Clan */ "./node_modules/libram/dist/Clan.js");
  
  var _lib = __webpack_require__(/*! ./lib */ "./node_modules/libram/dist/lib.js");
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject, _templateObject2, _templateObject3;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  var Dungeon = /*#__PURE__*/function () {
    function Dungeon(name, loot, openAction, closeAction, openCost, openImage, closedImage) {
      _classCallCheck(this, Dungeon);
  
      _defineProperty(this, "name", void 0);
  
      _defineProperty(this, "loot", void 0);
  
      _defineProperty(this, "openAction", void 0);
  
      _defineProperty(this, "closeAction", void 0);
  
      _defineProperty(this, "openCost", void 0);
  
      _defineProperty(this, "openImage", void 0);
  
      _defineProperty(this, "closedImage", void 0);
  
      this.name = name;
      this.loot = loot;
      this.openAction = openAction;
      this.closeAction = closeAction;
      this.openCost = openCost;
      this.openImage = openImage;
      this.closedImage = closedImage;
    }
  
    _createClass(Dungeon, [{
      key: "distribute",
      value: function distribute() {
        var _this = this;
  
        var idOrName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _kolmafia.myId)();
        var loot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.loot;
        var distributeAllOfAGivenItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
        var player = (0, _lib.getPlayerFromIdOrName)(idOrName);
        var lootList = Array.isArray(loot) ? loot : [loot];
        var badLoot = lootList.find(function (lootItem) {
          return !_this.loot.includes(lootItem);
        });
  
        if (badLoot) {
          throw new Error("".concat(badLoot, " is not a valid piece of dungeon loot"));
        }
  
        var pageText = (0, _kolmafia.visitUrl)("clan_basement.php");
  
        if (!pageText.match(player.name)) {
          throw new Error("".concat(player.name, " cannot be distributed loot from ").concat((0, _kolmafia.getClanName)()));
        }
  
        var itemNames = (0, _kolmafia.xpath)(pageText, "//tr/td[2]/b/text()");
        var whichLoots = (0, _kolmafia.xpath)(pageText, '//form[@action="clan_basement.php"]//input[@type="hidden"][@name="whichloot"]/@value');
        itemNames.forEach(function (itemName, index) {
          if (lootList.includes((0, _kolmafia.toItem)(itemName))) {
            (0, _kolmafia.visitUrl)("clan_basement.php?whichloot=".concat(whichLoots[index], "&recipient=").concat(player.id));
            if (!distributeAllOfAGivenItem) lootList.slice(lootList.indexOf((0, _kolmafia.toItem)(itemName)));
          }
        });
      }
    }, {
      key: "close",
      value: function close() {
        (0, _kolmafia.visitUrl)("clan_basement.php?action=".concat(this.closeAction, "&confirm=true"), true);
        var pageText = (0, _kolmafia.visitUrl)("clan_basement.php");
        return pageText.includes(this.closedImage);
      }
    }, {
      key: "open",
      value: function open() {
        var paymentPolicy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "Difference";
        var pageText = (0, _kolmafia.visitUrl)("clan_basement.php");
        if (pageText.includes(this.openImage)) return true;
  
        var clan = _Clan.Clan.get();
  
        if (paymentPolicy === "All") {
          clan.putMeatInCoffer(this.openCost);
        } else {
          var stashMeat = clan.getMeatInCoffer();
          var payDifference = this.openCost - stashMeat;
  
          if (payDifference > 0) {
            if (paymentPolicy === "None") return false;
            clan.putMeatInCoffer(payDifference);
          }
        }
  
        (0, _kolmafia.visitUrl)("clan_basement.php?action=".concat(this.openAction), true);
        return (0, _kolmafia.visitUrl)("clan_basement.php").includes(this.openImage);
      }
    }], [{
      key: "all",
      value: function all() {
        return [Hobopolis, SlimeTube, Dreadsylvania];
      }
    }]);
  
    return Dungeon;
  }();
  
  exports["default"] = Dungeon;
  var Hobopolis = new Dungeon("Hobopolis", (0, _templateString.$items)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Ol' Scratch's ash can, Ol' Scratch's ol' britches, Ol' Scratch's stovepipe hat, Ol' Scratch's infernal pitchfork, Ol' Scratch's manacles, Ol' Scratch's stove door, Frosty's carrot, Frosty's nailbat, Frosty's old silk hat, Frosty's arm, Frosty's iceball, Frosty's snowball sack, Oscus's dumpster waders, Oscus's pelt, Wand of Oscus, Oscus's flypaper pants, Oscus's garbage can lid, Oscus's neverending soda, Zombo's grievous greaves, Zombo's shield, Zombo's skullcap, Zombo's empty eye, Zombo's shoulder blade, Zombo's skull ring, Chester's bag of candy, Chester's cutoffs, Chester's moustache, Chester's Aquarius medallion, Chester's muscle shirt, Chester's sunglasses, Hodgman's bow tie, Hodgman's porkpie hat, Hodgman's lobsterskin pants, Hodgman's almanac, Hodgman's lucky sock, Hodgman's metal detector, Hodgman's varcolac paw, Hodgman's harmonica, Hodgman's garbage sticker, Hodgman's cane, Hodgman's whackin' stick, Hodgman's disgusting technicolor overcoat, Hodgman's imaginary hamster"]))), "cleansewer", "floodsewer", 1000000, "opengrate.gif", "sewergrate.gif");
  exports.Hobopolis = Hobopolis;
  var SlimeTube = new Dungeon("The Slime Tube", (0, _templateString.$items)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["slime-soaked brain, slime-soaked hypophysis, slime-soaked sweat gland, squirming Slime larva, caustic slime nodule, caustic slime nodule, hardened slime belt, hardened slime hat, hardened slime pants"]))), "cleanspot", "sealtube", 250000, "slimehole.gif", "greasespot.gif");
  exports.SlimeTube = SlimeTube;
  var Dreadsylvania = new Dungeon("Dreadsylvania", (0, _templateString.$items)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Great Wolf's headband, Great Wolf's right paw, Great Wolf's left paw, Great Wolf's lice, Great Wolf's rocket launcher, Great Wolf's beastly trousers, Drapes-You-Regally, Warms-Your-Tush, Covers-Your-Head, Protects-Your-Junk, Quiets-Your-Steps, Helps-You-Sleep, Mayor Ghost's khakis, Mayor Ghost's cloak, Mayor Ghost's toupee, Mayor Ghost's scissors, Mayor Ghost's sash, Mayor Ghost's gavel, zombie mariachi hat, zombie accordion, zombie mariachi pants, HOA regulation book, HOA zombie eyes, HOA citation pad, Unkillable Skeleton's skullcap, Unkillable Skeleton's shinguards, Unkillable Skeleton's breastplate, Unkillable Skeleton's shield, Unkillable Skeleton's sawsword, Unkillable Skeleton's restless leg, skull capacitor, Thunkula's drinking cap, Drunkula's silky pants, Drunkula's cape, Drunkula's ring of haze, Drunkula's wineglass, Drunkula's bell, bottle of Bloodweiser, bottle of Bloodweiser, bottle of Bloodweiser, bottle of Bloodweiser, electric Kool-Aid, electric Kool-Aid, electric Kool-Aid, electric Kool-Aid, ghost pepper, ghost pepper, ghost pepper, ghost pepper, Gets-You-Drunk, Gets-You-Drunk, Gets-You-Drunk, Gets-You-Drunk, wriggling severed nose, wriggling severed nose, wriggling severed nose, wriggling severed nose, Hunger\u2122 Sauce, Hunger\u2122 Sauce, Hunger\u2122 Sauce, Hunger\u2122 Sauce"]))), "translatemap", "foldmap", 1000000, "dvmap.gif", "foldmap.gif");
  exports.Dreadsylvania = Dreadsylvania;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/Kmail.js":
  /*!*******************************************!*\
    !*** ./node_modules/libram/dist/Kmail.js ***!
    \*******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports["default"] = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.object.entries.js */ "./node_modules/core-js/modules/es.object.entries.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _utils = __webpack_require__(/*! ./utils */ "./node_modules/libram/dist/utils.js");
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e2) {
            throw _e2;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e3) {
        didErr = true;
        err = _e3;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  }
  
  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }
  
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  }
  
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _iterableToArrayLimit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
  
    var _s, _e;
  
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  var Kmail = /*#__PURE__*/function () {
    function Kmail(rawKmail) {
      _classCallCheck(this, Kmail);
  
      _defineProperty(this, "id", void 0);
  
      _defineProperty(this, "date", void 0);
  
      _defineProperty(this, "type", void 0);
  
      _defineProperty(this, "senderId", void 0);
  
      _defineProperty(this, "senderName", void 0);
  
      _defineProperty(this, "message", void 0);
  
      this.id = Number(rawKmail.id);
      this.date = new Date(rawKmail.localtime);
      this.type = rawKmail.type;
      this.senderId = Number(rawKmail.fromid);
      this.senderName = rawKmail.fromname;
      this.message = rawKmail.message;
    }
    /**
     * Delete the kmail
     *
     * @returns Whether the kmail was deleted
     */
  
  
    _createClass(Kmail, [{
      key: "delete",
      value: function _delete() {
        return Kmail["delete"]([this]) === 1;
      }
      /**
       * Get items attached to the kmail
       *
       * @returns Map of items attached to the kmail and their quantities
       */
  
    }, {
      key: "items",
      value: function items() {
        return new Map(Object.entries((0, _kolmafia.extractItems)(this.message)).map(function (_ref) {
          var _ref2 = _slicedToArray(_ref, 2),
              itemName = _ref2[0],
              quantity = _ref2[1];
  
          return [Item.get(itemName), quantity];
        }));
      }
      /**
       * Get meat attached to the kmail
       *
       * @returns Meat attached to the kmail
       */
  
    }, {
      key: "meat",
      value: function meat() {
        return (0, _kolmafia.extractMeat)(this.message);
      }
      /**
       * Reply to kmail
       *
       * @see Kmail.send
       *
       * @returns True if the kmail was successfully sent
       */
  
    }, {
      key: "reply",
      value: function reply() {
        var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
        var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
        var meat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
        return Kmail.send(this.senderId, message, items, meat);
      }
    }], [{
      key: "parse",
      value:
      /**
       * Parses a kmail from KoL's native format
       *
       * @param rawKmail Kmail in the format supplies by api.php
       * @returns Parsed kmail
       */
      function parse(rawKmail) {
        return new Kmail(rawKmail);
      }
      /**
       * Returns all of the player's kmails
       *
       * @returns Parsed kmails
       */
  
    }, {
      key: "inbox",
      value: function inbox() {
        return JSON.parse((0, _kolmafia.visitUrl)("api.php?what=kmail&for=ASSistant")).map(Kmail.parse);
      }
      /**
       * Bulk delete kmails
       *
       * @param kmails Kmails to delete
       * @returns Number of kmails deleted
       */
  
    }, {
      key: "delete",
      value: function _delete(kmails) {
        var _results$match$, _results$match;
  
        var results = (0, _kolmafia.visitUrl)("messages.php?the_action=delete&box=Inbox&pwd&".concat(kmails.map(function (k) {
          return "sel".concat(k.id, "=on");
        }).join("&")));
        return Number((_results$match$ = (_results$match = results.match(/<td>(\d) messages? deleted.<\/td>/)) === null || _results$match === void 0 ? void 0 : _results$match[1]) !== null && _results$match$ !== void 0 ? _results$match$ : 0);
      }
    }, {
      key: "_genericSend",
      value: function _genericSend(to, message, items, meat, chunkSize, constructUrl, successString) {
        var m = meat;
  
        var sendableItems = _toConsumableArray((0, _utils.arrayToCountedMap)(items).entries()).filter(function (_ref3) {
          var _ref4 = _slicedToArray(_ref3, 1),
              item = _ref4[0];
  
          return (0, _kolmafia.isGiftable)(item);
        });
  
        var result = true;
        var chunks = (0, _utils.chunk)(sendableItems, chunkSize); // Split the items to be sent into chunks of max 11 item types
  
        var _iterator = _createForOfIteratorHelper(chunks.length > 0 ? chunks : [null]),
            _step;
  
        try {
          for (_iterator.s(); !(_step = _iterator.n()).done;) {
            var c = _step.value;
  
            var _itemsQuery = c === null ? [] : c.map(function (_ref5, index) {
              var _ref6 = _slicedToArray(_ref5, 2),
                  item = _ref6[0],
                  quantity = _ref6[1];
  
              return "whichitem".concat(index + 1, "=").concat((0, _kolmafia.toInt)(item), "&howmany").concat(index + 1, "=").concat(quantity);
            });
  
            var r = (0, _kolmafia.visitUrl)(constructUrl(m, _itemsQuery.join("&"), _itemsQuery.length));
  
            if (r.includes("That player cannot receive Meat or items")) {
              return Kmail.gift(to, message, items, meat);
            } // Make sure we don't send the same batch of meat with every chunk
  
  
            m = 0;
            result && (result = r.includes(successString));
          }
        } catch (err) {
          _iterator.e(err);
        } finally {
          _iterator.f();
        }
  
        return result;
      }
      /**
       * Sends a kmail to a player
       *
       * Sends multiple kmails if more than 11 unique item types are attached.
       * Ignores any ungiftable items.
       * Sends a gift package to players in run
       *
       * @param to The player name or id to receive the kmail
       * @param message The text contents of the message
       * @param items The items to be attached
       * @param meat The quantity of meat to be attached
       * @returns True if the kmail was successfully sent
       */
  
    }, {
      key: "send",
      value: function send(to) {
        var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
        var items = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
        var meat = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
        return Kmail._genericSend(to, message, items, meat, 11, function (meat, itemsQuery) {
          return "sendmessage.php?action=send&pwd&towho=".concat(to, "&message=").concat(message).concat(itemsQuery ? "&".concat(itemsQuery) : "", "&sendmeat=").concat(meat);
        }, ">Message sent.</");
      }
      /**
       * Sends a gift to a player
       *
       * Sends multiple kmails if more than 3 unique item types are attached.
       * Ignores any ungiftable items.
       *
       * @param to The player name or id to receive the gift
       * @param note The note on the outside of the gift
       * @param items The items to be attached
       * @param meat The quantity of meat to be attached
       * @param insideNode The note on the inside of the gift
       * @returns True if the gift was successfully sent
       */
  
    }, {
      key: "gift",
      value: function gift(to) {
        var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
        var items = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
        var meat = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
        var insideNote = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "";
        var baseUrl = "town_sendgift.php?action=Yep.&pwd&fromwhere=0&note=".concat(message, "&insidenote=").concat(insideNote, "&towho=").concat(to);
        return Kmail._genericSend(to, message, items, meat, 3, function (m, itemsQuery, chunkSize) {
          return "".concat(baseUrl, "&whichpackage=").concat(chunkSize).concat(itemsQuery ? "&".concat(itemsQuery) : "", "&sendmeat=").concat(m);
        }, ">Package sent.</");
      }
    }]);
  
    return Kmail;
  }();
  
  exports["default"] = Kmail;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/Path.js":
  /*!******************************************!*\
    !*** ./node_modules/libram/dist/Path.js ***!
    \******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.Paths = exports.Path = void 0;
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  var Path = //here, we define avatar-ness around being its own class
  //Defined as the lowest inebriety that makes you unable to drink more, just to make it fifteens across the board
  function Path(name, id) {
    var hasAllPerms = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
    var hasCampground = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
    var hasTerrarium = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
    var stomachSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 15;
    var liverSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 15;
    var spleenSize = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 15;
    var classes = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : (0, _templateString.$classes)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Seal Clubber, Turtle Tamer, Sauceror, Pastamancer, Disco Bandit, Accordion Thief"])));
  
    _classCallCheck(this, Path);
  
    _defineProperty(this, "name", void 0);
  
    _defineProperty(this, "id", void 0);
  
    _defineProperty(this, "hasAllPerms", void 0);
  
    _defineProperty(this, "hasCampground", void 0);
  
    _defineProperty(this, "hasTerrarium", void 0);
  
    _defineProperty(this, "stomachSize", void 0);
  
    _defineProperty(this, "liverSize", void 0);
  
    _defineProperty(this, "spleenSize", void 0);
  
    _defineProperty(this, "classes", void 0);
  
    this.name = name;
    this.id = id;
    this.hasAllPerms = hasAllPerms;
    this.hasCampground = hasCampground;
    this.hasTerrarium = hasTerrarium;
    this.stomachSize = stomachSize;
    this.liverSize = liverSize;
    this.spleenSize = spleenSize;
    this.classes = classes;
  };
  
  exports.Path = Path;
  var Paths = {
    Unrestricted: new Path("Unrestricted", 0),
    Boozetafarian: new Path("Boozetafarian", 1, false, true, true, 0),
    Teetotaler: new Path("Teetotaler", 2, false, true, true, 15, 0),
    Oxygenarian: new Path("Oxygenarian", 3, false, true, true, 0, 0),
    BeesHateYou: new Path("Bees Hate You", 4),
    WayOfTheSurprisingFist: new Path("Way of the Surprising Fist", 6),
    Trendy: new Path("Trendy", 6),
    AvatarOfBoris: new Path("Avatar of Boris", 8, false, true, false, 20, 5, 15, (0, _templateString.$classes)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Avatar of Boris"])))),
    BugbearInvasion: new Path("Bugbear Invasion", 9),
    ZombieSlayer: new Path("Zombie Slayer", 10, false, true, true, 15, 5, 15, (0, _templateString.$classes)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Zombie Master"])))),
    ClassAct: new Path("Class Act", 11, false),
    AvatarofJarlsberg: new Path("Avatar of Jarlsberg", 12, false, true, false, 10, 10, 15, (0, _templateString.$classes)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Avatar of Jarlsberg"])))),
    Big: new Path("BIG!", 14),
    KolHs: new Path("KOLHS", 15),
    ClassAct2: new Path("Class Act II: A Class For Pigs", 16, false),
    AvatarofSneakyPete: new Path("Avatar of Sneaky Pete", 17, false, true, false, 5, 20, 15, (0, _templateString.$classes)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Avatar of Sneaky Pete"])))),
    SlowAndSteady: new Path("Slow and Steady", 18),
    HeavyRains: new Path("Heavy Rains", 19),
    Picky: new Path("Picky", 21, false),
    Standard: new Path("Standard", 22),
    ActuallyEdTheUndying: new Path("Actually Ed the Undying", 23, false, false, false, 0, 0, 5, (0, _templateString.$classes)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Ed"])))),
    OneCrazyRandomSummer: new Path("One Crazy Random Summer", 24),
    CommunityService: new Path("Community Service", 25),
    AvatarOfWestOfLoathing: new Path("Avatar of West of Loathing", 26, false, true, true, 10, 10, 10, (0, _templateString.$classes)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Cow Puncher, Snake Oiler, Beanslinger"])))),
    TheSource: new Path("The Source", 27),
    NuclearAutumn: new Path("Nuclear Autumn", 28, false, false, true, 3, 3, 3),
    GelatinousNoob: new Path("Gelatinous Noob", 29, false, true, true, 0, 0, 0, (0, _templateString.$classes)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Gelatinous Noob"])))),
    LicenseToAdventure: new Path("License to Adventure", 30, true, true, false, 0, 2, 15),
    //Unsure how to log liver size here
    LiveAscendRepeat: new Path("Live. Ascend. Repeat.", 31),
    PocketFamiliars: new Path("Pocket Familiars", 32, false, true, false),
    //This is my opinion on the matter
    GLover: new Path("G-Lover", 33),
    DisguisesDelimit: new Path("Disguises Delimit", 34),
    DarkGyffte: new Path("Dark Gyffte", 35, false, true, false, 5, 5, 15, (0, _templateString.$classes)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Vampyre"])))),
    TwoCrazyRandomSummer: new Path("Two Crazy Random Summer", 36),
    KingdomOfExploathing: new Path("Kingdom of Exploathing", 37),
    PathOfThePlumber: new Path("Path of the Plumber", 38, false, true, true, 20, 0, 5, (0, _templateString.$classes)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Plumber"])))),
    LowKeySummer: new Path("Low Key Summer", 40),
    GreyGoo: new Path("Grey Goo", 40),
    YouRobot: new Path("You, Robot", 41, false, false, true, 0, 0, 0),
    QuantumTerrarium: new Path("Quantum Terrarium", 42, true, true, false),
    Wildfire: new Path("Wildfire", 43)
  };
  exports.Paths = Paths;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/ascend.js":
  /*!********************************************!*\
    !*** ./node_modules/libram/dist/ascend.js ***!
    \********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.ascend = ascend;
  exports.prepareAscension = prepareAscension;
  exports.Lifestyle = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _property = __webpack_require__(/*! ./property */ "./node_modules/libram/dist/property.js");
  
  var _resources = __webpack_require__(/*! ./resources */ "./node_modules/libram/dist/resources/index.js");
  
  var _lib = __webpack_require__(/*! ./lib */ "./node_modules/libram/dist/lib.js");
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var Lifestyle;
  exports.Lifestyle = Lifestyle;
  
  (function (Lifestyle) {
    Lifestyle[Lifestyle["casual"] = 1] = "casual";
    Lifestyle[Lifestyle["softcore"] = 2] = "softcore";
    Lifestyle[Lifestyle["normal"] = 2] = "normal";
    Lifestyle[Lifestyle["hardcore"] = 3] = "hardcore";
  })(Lifestyle || (exports.Lifestyle = Lifestyle = {}));
  
  function toMoonId(moon, playerClass) {
    if (typeof moon === "number") return moon;
  
    var offset = function offset() {
      switch (playerClass.primestat) {
        case (0, _templateString.$stat)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Muscle"]))):
          return 0;
  
        case (0, _templateString.$stat)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Mysticality"]))):
          return 1;
  
        case (0, _templateString.$stat)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Moxie"]))):
          return 2;
  
        default:
          throw "unknown prime stat for ".concat(playerClass);
      }
    };
  
    switch (moon.toLowerCase()) {
      case "mongoose":
        return 1;
  
      case "wallaby":
        return 2;
  
      case "vole":
        return 3;
  
      case "platypus":
        return 4;
  
      case "opossum":
        return 5;
  
      case "marmot":
        return 6;
  
      case "wombat":
        return 7;
  
      case "blender":
        return 8;
  
      case "packrat":
        return 9;
  
      case "degrassi":
      case "degrassi knoll":
      case "friendly degrassi knoll":
      case "knoll":
        return 1 + offset();
  
      case "canada":
      case "canadia":
      case "little canadia":
        return 4 + offset();
  
      case "gnomads":
      case "gnomish":
      case "gnomish gnomads camp":
        return 7 + offset();
  
      default:
        return -1;
    }
  }
  
  function ascend(path, playerClass, lifestyle, moon) {
    var consumable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (0, _templateString.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["astral six-pack"])));
    var pet = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : undefined;
  
    if (!(0, _kolmafia.containsText)((0, _kolmafia.visitUrl)("charpane.php"), "Astral Spirit")) {
      (0, _kolmafia.print)("It'd really be better if you were already through the gash. Oh well!", "blue");
      (0, _kolmafia.visitUrl)("ascend.php?action=ascend&confirm=on&confirm2=on");
    }
  
    if (!(0, _kolmafia.containsText)((0, _kolmafia.visitUrl)("charpane.php"), "Astral Spirit")) throw "Failed to ascend.";
    if (!path.classes.includes(playerClass)) throw "Invalid class ".concat(playerClass, " for this path");
    if (path.id < 0) throw "Invalid path ID ".concat(path.id);
    var moonId = toMoonId(moon, playerClass);
    if (moonId < 1 || moonId > 9) throw "Invalid moon ".concat(moon);
    if (consumable && !(0, _templateString.$items)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["astral six-pack, astral hot dog dinner"]))).includes(consumable)) throw "Invalid consumable ".concat(consumable);
    if (pet && !(0, _templateString.$items)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["astral bludgeon, astral shield, astral chapeau, astral bracer, astral longbow, astral shorts, astral mace, astral ring, astral statuette, astral pistol, astral mask, astral pet sweater, astral shirt, astral belt"]))).includes(pet)) throw "Invalid astral item ".concat(pet);
    (0, _kolmafia.visitUrl)("afterlife.php?action=pearlygates");
    if (consumable) (0, _kolmafia.visitUrl)("afterlife.php?action=buydeli&whichitem=".concat((0, _kolmafia.toInt)(consumable)));
    if (pet) (0, _kolmafia.visitUrl)("afterlife.php?action=buyarmory&whichitem=".concat((0, _kolmafia.toInt)(pet)));
    (0, _kolmafia.visitUrl)("afterlife.php?action=ascend&confirmascend=1&whichsign=".concat(moonId, "&gender=2&whichclass=").concat((0, _kolmafia.toInt)(playerClass), "&whichpath=").concat(path.id, "&asctype=").concat(lifestyle, "&nopetok=1&noskillsok=1&lamepathok=1&pwd"), true);
  }
  
  var worksheds = (0, _templateString.$items)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["warbear LP-ROM burner, warbear jackhammer drill press, warbear induction oven, warbear high-efficiency still, warbear chemistry lab, warbear auto-anvil, spinning wheel, snow machine, Little Geneticist DNA-Splicing Lab, portable Mayo Clinic, Asdon Martin keyfob, diabolic pizza cube"])));
  var gardens = (0, _templateString.$items)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["packet of pumpkin seeds, Peppermint Pip Packet, packet of dragon's teeth, packet of beer seeds, packet of winter seeds, packet of thanksgarden seeds, packet of tall grass seeds, packet of mushroom spores"]))); // eslint-disable-next-line libram/verify-constants
  
  var eudorae = (0, _templateString.$items)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["My Own Pen Pal kit, GameInformPowerDailyPro subscription card, Xi Receiver Unit, New-You Club Membership Form, Our Daily Candles\u2122 order form"])));
  var desks = (0, _templateString.$items)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["fancy stationery set, Swiss piggy bank, continental juice bar"])));
  var ceilings = (0, _templateString.$items)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["antler chandelier, ceiling fan, artificial skylight"])));
  var nightstands = (0, _templateString.$items)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["foreign language tapes, bowl of potpourri, electric muscle stimulator"])));
  
  function prepareAscension(ascensionItems, chateauItems) {
    var throwOnFail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  
    if (ascensionItems) {
      if (ascensionItems.workshed && (0, _kolmafia.getWorkshed)() !== ascensionItems.workshed) {
        if (!worksheds.includes(ascensionItems.workshed) && throwOnFail) throw "Invalid workshed: ".concat(ascensionItems.workshed, "!");else if (!(0, _lib.have)(ascensionItems.workshed) && throwOnFail) throw "I'm sorry buddy, but you don't seem to own a ".concat(ascensionItems.workshed, ". Which makes it REALLY hard for us to plop one into your workshed.");else if ((0, _property.get)("_workshedItemUsed") && throwOnFail) throw "Seems like you've already swapped your workshed, buddy.";else (0, _kolmafia.use)(ascensionItems.workshed);
        if ((0, _kolmafia.getWorkshed)() !== ascensionItems.workshed && throwOnFail) throw "We really thought we changed your workshed to a ".concat(ascensionItems.workshed, ", but Mafia is saying otherwise.");
      }
  
      if (ascensionItems.garden && !Object.getOwnPropertyNames((0, _kolmafia.getCampground)()).includes(ascensionItems.garden.name)) {
        if (!gardens.includes(ascensionItems.garden) && throwOnFail) throw "Invalid garden: ".concat(ascensionItems.garden, "!");else if (!(0, _lib.have)(ascensionItems.garden) && throwOnFail) throw "I'm sorry buddy, but you don't seem to own a ".concat(ascensionItems.garden, ". Which makes it REALLY hard for us to plant one into your garden.");else (0, _kolmafia.use)(ascensionItems.garden);
        if (!Object.getOwnPropertyNames((0, _kolmafia.getCampground)()).includes(ascensionItems.garden.name) && throwOnFail) throw "We really thought we changed your garden to a ".concat(ascensionItems.garden, ", but Mafia is saying otherwise.");
      }
  
      if (ascensionItems.eudora && (0, _kolmafia.eudoraItem)() !== ascensionItems.eudora) {
        if (!eudorae.includes(ascensionItems.eudora) && throwOnFail) throw "Invalid eudora: ".concat(ascensionItems.eudora, "!");
        var eudoraNumber = 1 + eudorae.indexOf(ascensionItems.eudora);
        if (!(0, _kolmafia.xpath)((0, _kolmafia.visitUrl)("account.php?tab=correspondence"), "//select[@name=\"whichpenpal\"]/option/@value").includes(eudoraNumber.toString()) && throwOnFail) throw "I'm sorry buddy, but you don't seem to be subscribed to ".concat(ascensionItems.eudora, ". Which makes it REALLY hard to correspond with them.");else (0, _kolmafia.visitUrl)("account.php?actions[]=whichpenpal&whichpenpal=".concat(eudoraNumber, "&action=Update"), true);
        if ((0, _kolmafia.eudoraItem)() !== ascensionItems.eudora && throwOnFail) throw "We really thought we chaned your eudora to a ".concat(ascensionItems.eudora, ", but Mafia is saying otherwise.");
      }
    }
  
    if (chateauItems && _resources.ChateauMantegna.have()) {
      if (chateauItems.ceiling && _resources.ChateauMantegna.getCeiling() !== chateauItems.ceiling) {
        if (!ceilings.includes(chateauItems.ceiling) && throwOnFail) throw "Invalid chateau ceiling: ".concat(chateauItems.ceiling, "!");else if (!_resources.ChateauMantegna.changeCeiling(chateauItems.ceiling) && throwOnFail) throw "We tried, but were unable to change your chateau ceiling to ".concat(chateauItems.ceiling, ". Probably.");
      }
  
      if (chateauItems.desk && _resources.ChateauMantegna.getDesk() !== chateauItems.desk) {
        if (!desks.includes(chateauItems.desk) && throwOnFail) throw "Invalid chateau desk: ".concat(chateauItems.desk, "!");else if (!_resources.ChateauMantegna.changeDesk(chateauItems.desk) && throwOnFail) throw "We tried, but were unable to change your chateau desk to ".concat(chateauItems.desk, ". Probably.");
      }
  
      if (chateauItems.nightstand && _resources.ChateauMantegna.getNightstand() !== chateauItems.nightstand) {
        if (!nightstands.includes(chateauItems.nightstand) && throwOnFail) throw "Invalid chateau nightstand: ".concat(chateauItems.nightstand, "!");else if (!_resources.ChateauMantegna.changeNightstand(chateauItems.nightstand) && throwOnFail) throw "We tried, but were unable to change your chateau nightstand to ".concat(chateauItems.nightstand, ". Probably.");
      }
    }
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/combat.js":
  /*!********************************************!*\
    !*** ./node_modules/libram/dist/combat.js ***!
    \********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.getMacroId = getMacroId;
  exports.adventureMacro = adventureMacro;
  exports.adventureMacroAuto = adventureMacroAuto;
  exports.Macro = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _property = __webpack_require__(/*! ./property */ "./node_modules/libram/dist/property.js");
  
  var _templateObject, _templateObject2;
  
  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  }
  
  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }
  
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var MACRO_NAME = "Script Autoattack Macro";
  /**
   * Get the KoL native ID of the macro with name Script Autoattack Macro.
   *
   * @category Combat
   * @returns {number} The macro ID.
   */
  
  function getMacroId() {
    var macroMatches = (0, _kolmafia.xpath)((0, _kolmafia.visitUrl)("account_combatmacros.php"), "//select[@name=\"macroid\"]/option[text()=\"".concat(MACRO_NAME, "\"]/@value"));
  
    if (macroMatches.length === 0) {
      (0, _kolmafia.visitUrl)("account_combatmacros.php?action=new");
      var newMacroText = (0, _kolmafia.visitUrl)("account_combatmacros.php?macroid=0&name=".concat(MACRO_NAME, "&macrotext=abort&action=save"));
      return parseInt((0, _kolmafia.xpath)(newMacroText, "//input[@name=macroid]/@value")[0], 10);
    } else {
      return parseInt(macroMatches[0], 10);
    }
  }
  
  function itemOrNameToItem(itemOrName) {
    return typeof itemOrName === "string" ? Item.get(itemOrName) : itemOrName;
  }
  
  var substringCombatItems = (0, _templateString.$items)(_templateObject || (_templateObject = _taggedTemplateLiteral(["spider web, really sticky spider web, dictionary, NG, Cloaca-Cola, yo-yo, top, ball, kite, yo, red potion, blue potion, adder, red button, pile of sand, mushroom, deluxe mushroom"])));
  var substringCombatSkills = (0, _templateString.$skills)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Shoot, Thrust-Smack, Headbutt, Toss, Sing, Disarm, LIGHT, BURN, Extract, Meteor Shower, Cleave, Boil, Slice, Rainbow"])));
  
  function itemOrItemsBallsMacroName(itemOrItems) {
    if (Array.isArray(itemOrItems)) {
      return itemOrItems.map(itemOrItemsBallsMacroName).join(", ");
    } else {
      var item = itemOrNameToItem(itemOrItems);
      return !substringCombatItems.includes(item) ? item.name : (0, _kolmafia.toInt)(item).toString();
    }
  }
  
  function itemOrItemsBallsMacroPredicate(itemOrItems) {
    if (Array.isArray(itemOrItems)) {
      return itemOrItems.map(itemOrItemsBallsMacroPredicate).join(" && ");
    } else {
      return "hascombatitem ".concat(itemOrItems);
    }
  }
  
  function skillOrNameToSkill(skillOrName) {
    if (typeof skillOrName === "string") {
      return Skill.get(skillOrName);
    } else {
      return skillOrName;
    }
  }
  
  function skillBallsMacroName(skillOrName) {
    var skill = skillOrNameToSkill(skillOrName);
    return skill.name.match(/^[A-Za-z ]+$/) && !substringCombatSkills.includes(skill) ? skill.name : (0, _kolmafia.toInt)(skill);
  }
  /**
   * BALLS macro builder for direct submission to KoL.
   * Create a new macro with `new Macro()` and add steps using the instance methods.
   * Uses a fluent interface, so each step returns the object for easy chaining of steps.
   * Each method is also defined as a static method that creates a new Macro with only that step.
   * For example, you can do `Macro.skill('Saucestorm').attack()`.
   */
  
  
  var Macro = /*#__PURE__*/function () {
    function Macro() {
      _classCallCheck(this, Macro);
  
      _defineProperty(this, "components", []);
    }
  
    _createClass(Macro, [{
      key: "toString",
      value:
      /**
       * Convert macro to string.
       */
      function toString() {
        return this.components.join(";");
      }
      /**
       * Save a macro to a Mafia property for use in a consult script.
       */
  
    }, {
      key: "save",
      value: function save() {
        (0, _property.set)(Macro.SAVED_MACRO_PROPERTY, this.toString());
      }
      /**
       * Load a saved macro from the Mafia property.
       */
  
    }, {
      key: "step",
      value:
      /**
       * Statefully add one or several steps to a macro.
       * @param nextSteps The steps to add to the macro.
       * @returns {Macro} This object itself.
       */
      function step() {
        var _ref;
  
        for (var _len = arguments.length, nextSteps = new Array(_len), _key = 0; _key < _len; _key++) {
          nextSteps[_key] = arguments[_key];
        }
  
        var nextStepsStrings = (_ref = []).concat.apply(_ref, _toConsumableArray(nextSteps.map(function (x) {
          return x instanceof Macro ? x.components : [x];
        })));
  
        this.components = [].concat(_toConsumableArray(this.components), _toConsumableArray(nextStepsStrings.filter(function (s) {
          return s.length > 0;
        })));
        return this;
      }
      /**
       * Statefully add one or several steps to a macro.
       * @param nextSteps The steps to add to the macro.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "submit",
      value:
      /**
       * Submit the built macro to KoL. Only works inside combat.
       */
      function submit() {
        var _final = this.toString();
  
        return (0, _kolmafia.visitUrl)("fight.php?action=macro&macrotext=".concat((0, _kolmafia.urlEncode)(_final)), true, true);
      }
      /**
       * Set this macro as a KoL native autoattack.
       */
  
    }, {
      key: "setAutoAttack",
      value: function setAutoAttack() {
        if (Macro.cachedMacroId === null) Macro.cachedMacroId = getMacroId();
  
        if ((0, _kolmafia.getAutoAttack)() === 99000000 + Macro.cachedMacroId && this.toString() === Macro.cachedAutoAttack) {
          // This macro is already set. Don"t make the server request.
          return;
        }
  
        (0, _kolmafia.visitUrl)("account_combatmacros.php?macroid=".concat(Macro.cachedMacroId, "&name=").concat((0, _kolmafia.urlEncode)(MACRO_NAME), "&macrotext=").concat((0, _kolmafia.urlEncode)(this.toString()), "&action=save"), true, true);
        (0, _kolmafia.visitUrl)("account.php?am=1&action=autoattack&value=".concat(99000000 + Macro.cachedMacroId, "&ajax=1"));
        Macro.cachedAutoAttack = this.toString();
      }
      /**
       * Add an "abort" step to this macro.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "abort",
      value: function abort() {
        return this.step("abort");
      }
      /**
       * Create a new macro with an "abort" step.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "if_",
      value:
      /**
       * Add an "if" statement to this macro.
       * @param condition The BALLS condition for the if statement.
       * @param ifTrue Continuation if the condition is true.
       * @returns {Macro} This object itself.
       */
      function if_(condition, ifTrue) {
        return this.step("if ".concat(condition)).step(ifTrue).step("endif");
      }
      /**
       * Create a new macro with an "if" statement.
       * @param condition The BALLS condition for the if statement.
       * @param ifTrue Continuation if the condition is true.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "while_",
      value:
      /**
       * Add a "while" statement to this macro.
       * @param condition The BALLS condition for the if statement.
       * @param contents Loop to repeat while the condition is true.
       * @returns {Macro} This object itself.
       */
      function while_(condition, contents) {
        return this.step("while ".concat(condition)).step(contents).step("endwhile");
      }
      /**
       * Create a new macro with a "while" statement.
       * @param condition The BALLS condition for the if statement.
       * @param contents Loop to repeat while the condition is true.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "externalIf",
      value:
      /**
       * Conditionally add a step to a macro based on a condition evaluated at the time of building the macro.
       * @param condition The JS condition.
       * @param ifTrue Continuation to add if the condition is true.
       * @returns {Macro} This object itself.
       */
      function externalIf(condition, ifTrue) {
        return condition ? this.step(ifTrue) : this;
      }
      /**
       * Create a new macro with a condition evaluated at the time of building the macro.
       * @param condition The JS condition.
       * @param ifTrue Continuation to add if the condition is true.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "repeat",
      value:
      /**
       * Add a repeat step to the macro.
       * @returns {Macro} This object itself.
       */
      function repeat() {
        return this.step("repeat");
      }
      /**
       * Add one or more skill cast steps to the macro.
       * @param skills Skills to cast.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "skill",
      value: function skill() {
        for (var _len2 = arguments.length, skills = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
          skills[_key2] = arguments[_key2];
        }
  
        return this.step.apply(this, _toConsumableArray(skills.map(function (skill) {
          return "skill ".concat(skillBallsMacroName(skill));
        })));
      }
      /**
       * Create a new macro with one or more skill cast steps.
       * @param skills Skills to cast.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "trySkill",
      value:
      /**
       * Add one or more skill cast steps to the macro, where each step checks if you have the skill first.
       * @param skills Skills to try casting.
       * @returns {Macro} This object itself.
       */
      function trySkill() {
        for (var _len3 = arguments.length, skills = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
          skills[_key3] = arguments[_key3];
        }
  
        return this.step.apply(this, _toConsumableArray(skills.map(function (skill) {
          return Macro.if_("hasskill ".concat(skillBallsMacroName(skill)), Macro.skill(skill));
        })));
      }
      /**
       * Create a new macro with one or more skill cast steps, where each step checks if you have the skill first.
       * @param skills Skills to try casting.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "trySkillRepeat",
      value:
      /**
       * Add one or more skill-cast-and-repeat steps to the macro, where each step checks if you have the skill first.
       * @param skills Skills to try repeatedly casting.
       * @returns {Macro} This object itself.
       */
      function trySkillRepeat() {
        for (var _len4 = arguments.length, skills = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
          skills[_key4] = arguments[_key4];
        }
  
        return this.step.apply(this, _toConsumableArray(skills.map(function (skill) {
          return Macro.if_("hasskill ".concat(skillBallsMacroName(skill)), Macro.skill(skill).repeat());
        })));
      }
      /**
       * Create a new macro with one or more skill-cast-and-repeat steps, where each step checks if you have the skill first.
       * @param skills Skills to try repeatedly casting.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "item",
      value:
      /**
       * Add one or more item steps to the macro.
       * @param items Items to use. Pass a tuple [item1, item2] to funksling.
       * @returns {Macro} This object itself.
       */
      function item() {
        for (var _len5 = arguments.length, items = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
          items[_key5] = arguments[_key5];
        }
  
        return this.step.apply(this, _toConsumableArray(items.map(function (itemOrItems) {
          return "use ".concat(itemOrItemsBallsMacroName(itemOrItems));
        })));
      }
      /**
       * Create a new macro with one or more item steps.
       * @param items Items to use. Pass a tuple [item1, item2] to funksling.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "tryItem",
      value:
      /**
       * Add one or more item steps to the macro, where each step checks to see if you have the item first.
       * @param items Items to try using. Pass a tuple [item1, item2] to funksling.
       * @returns {Macro} This object itself.
       */
      function tryItem() {
        for (var _len6 = arguments.length, items = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
          items[_key6] = arguments[_key6];
        }
  
        return this.step.apply(this, _toConsumableArray(items.map(function (item) {
          return Macro.if_(itemOrItemsBallsMacroPredicate(item), "use ".concat(itemOrItemsBallsMacroName(item)));
        })));
      }
      /**
       * Create a new macro with one or more item steps, where each step checks to see if you have the item first.
       * @param items Items to try using. Pass a tuple [item1, item2] to funksling.
       * @returns {Macro} This object itself.
       */
  
    }, {
      key: "attack",
      value:
      /**
       * Add an attack step to the macro.
       * @returns {Macro} This object itself.
       */
      function attack() {
        return this.step("attack");
      }
      /**
       * Create a new macro with an attack step.
       * @returns {Macro} This object itself.
       */
  
    }], [{
      key: "load",
      value: function load() {
        var _this;
  
        return (_this = new this()).step.apply(_this, _toConsumableArray((0, _property.get)(Macro.SAVED_MACRO_PROPERTY).split(";")));
      }
      /**
       * Clear the saved macro in the Mafia property.
       */
  
    }, {
      key: "clearSaved",
      value: function clearSaved() {
        (0, _kolmafia.removeProperty)(Macro.SAVED_MACRO_PROPERTY);
      }
    }, {
      key: "step",
      value: function step() {
        var _this2;
  
        return (_this2 = new this()).step.apply(_this2, arguments);
      }
    }, {
      key: "abort",
      value: function abort() {
        return new this().abort();
      }
    }, {
      key: "if_",
      value: function if_(condition, ifTrue) {
        return new this().if_(condition, ifTrue);
      }
    }, {
      key: "while_",
      value: function while_(condition, contents) {
        return new this().while_(condition, contents);
      }
    }, {
      key: "externalIf",
      value: function externalIf(condition, ifTrue) {
        return new this().externalIf(condition, ifTrue);
      }
    }, {
      key: "skill",
      value: function skill() {
        var _this3;
  
        return (_this3 = new this()).skill.apply(_this3, arguments);
      }
    }, {
      key: "trySkill",
      value: function trySkill() {
        var _this4;
  
        return (_this4 = new this()).trySkill.apply(_this4, arguments);
      }
    }, {
      key: "trySkillRepeat",
      value: function trySkillRepeat() {
        var _this5;
  
        return (_this5 = new this()).trySkillRepeat.apply(_this5, arguments);
      }
    }, {
      key: "item",
      value: function item() {
        var _this6;
  
        return (_this6 = new this()).item.apply(_this6, arguments);
      }
    }, {
      key: "tryItem",
      value: function tryItem() {
        var _this7;
  
        return (_this7 = new this()).tryItem.apply(_this7, arguments);
      }
    }, {
      key: "attack",
      value: function attack() {
        return new this().attack();
      }
    }]);
  
    return Macro;
  }();
  /**
   * Adventure in a location and handle all combats with a given macro.
   * To use this function you will need to create a consult script that runs Macro.load().submit() and a CCS that calls that consult script.
   * See examples/consult.ts for an example.
   *
   * @category Combat
   * @param loc Location to adventure in.
   * @param macro Macro to execute.
   */
  
  
  exports.Macro = Macro;
  
  _defineProperty(Macro, "SAVED_MACRO_PROPERTY", "libram_savedMacro");
  
  _defineProperty(Macro, "cachedMacroId", null);
  
  _defineProperty(Macro, "cachedAutoAttack", null);
  
  function adventureMacro(loc, macro) {
    macro.save();
    (0, _kolmafia.setAutoAttack)(0);
  
    try {
      (0, _kolmafia.adv1)(loc, 0, "");
  
      while ((0, _kolmafia.inMultiFight)()) {
        (0, _kolmafia.runCombat)();
      }
  
      if ((0, _kolmafia.choiceFollowsFight)()) (0, _kolmafia.visitUrl)("choice.php");
    } finally {
      Macro.clearSaved();
    }
  }
  /**
   * Adventure in a location and handle all combats with a given autoattack and manual macro.
   * To use the nextMacro parameter you will need to create a consult script that runs Macro.load().submit() and a CCS that calls that consult script.
   * See examples/consult.ts for an example.
   *
   * @category Combat
   * @param loc Location to adventure in.
   * @param autoMacro Macro to execute via KoL autoattack.
   * @param nextMacro Macro to execute manually after autoattack completes.
   */
  
  
  function adventureMacroAuto(loc, autoMacro) {
    var _nextMacro;
  
    var nextMacro = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
    nextMacro = (_nextMacro = nextMacro) !== null && _nextMacro !== void 0 ? _nextMacro : Macro.abort();
    autoMacro.setAutoAttack();
    nextMacro.save();
  
    try {
      (0, _kolmafia.adv1)(loc, 0, "");
  
      while ((0, _kolmafia.inMultiFight)()) {
        (0, _kolmafia.runCombat)();
      }
  
      if ((0, _kolmafia.choiceFollowsFight)()) (0, _kolmafia.visitUrl)("choice.php");
    } finally {
      Macro.clearSaved();
    }
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/console.js":
  /*!*********************************************!*\
    !*** ./node_modules/libram/dist/console.js ***!
    \*********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.error = exports.warn = exports.info = exports.log = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia"); // eslint-disable-next-line @typescript-eslint/no-explicit-any
  
  
  var logColor = function logColor(color) {
    return function () {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      var output = args.map(function (x) {
        return x.toString();
      }).join(" ");
  
      if (color) {
        (0, _kolmafia.print)(output, color);
      } else {
        (0, _kolmafia.print)(output);
      }
    };
  };
  
  var log = logColor();
  exports.log = log;
  var info = logColor("blue");
  exports.info = info;
  var warn = logColor("red");
  exports.warn = warn;
  var error = logColor("red");
  exports.error = error;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/index.js":
  /*!*******************************************!*\
    !*** ./node_modules/libram/dist/index.js ***!
    \*******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  var _exportNames = {
    Kmail: true,
    logger: true,
    LogLevel: true,
    console: true,
    get: true,
    PropertiesManager: true,
    set: true,
    setProperties: true,
    withProperties: true,
    withProperty: true,
    withChoices: true,
    withChoice: true,
    property: true
  };
  Object.defineProperty(exports, "Kmail", ({
    enumerable: true,
    get: function get() {
      return _Kmail["default"];
    }
  }));
  Object.defineProperty(exports, "logger", ({
    enumerable: true,
    get: function get() {
      return _logger["default"];
    }
  }));
  Object.defineProperty(exports, "LogLevel", ({
    enumerable: true,
    get: function get() {
      return _logger.LogLevel;
    }
  }));
  Object.defineProperty(exports, "get", ({
    enumerable: true,
    get: function get() {
      return _property.get;
    }
  }));
  Object.defineProperty(exports, "PropertiesManager", ({
    enumerable: true,
    get: function get() {
      return _property.PropertiesManager;
    }
  }));
  Object.defineProperty(exports, "set", ({
    enumerable: true,
    get: function get() {
      return _property.set;
    }
  }));
  Object.defineProperty(exports, "setProperties", ({
    enumerable: true,
    get: function get() {
      return _property.setProperties;
    }
  }));
  Object.defineProperty(exports, "withProperties", ({
    enumerable: true,
    get: function get() {
      return _property.withProperties;
    }
  }));
  Object.defineProperty(exports, "withProperty", ({
    enumerable: true,
    get: function get() {
      return _property.withProperty;
    }
  }));
  Object.defineProperty(exports, "withChoices", ({
    enumerable: true,
    get: function get() {
      return _property.withChoices;
    }
  }));
  Object.defineProperty(exports, "withChoice", ({
    enumerable: true,
    get: function get() {
      return _property.withChoice;
    }
  }));
  exports.property = exports.console = void 0;
  
  var _ascend = __webpack_require__(/*! ./ascend */ "./node_modules/libram/dist/ascend.js");
  
  Object.keys(_ascend).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _ascend[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _ascend[key];
      }
    });
  });
  
  var _Clan = __webpack_require__(/*! ./Clan */ "./node_modules/libram/dist/Clan.js");
  
  Object.keys(_Clan).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _Clan[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _Clan[key];
      }
    });
  });
  
  var _combat = __webpack_require__(/*! ./combat */ "./node_modules/libram/dist/combat.js");
  
  Object.keys(_combat).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _combat[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _combat[key];
      }
    });
  });
  
  var _Dungeon = __webpack_require__(/*! ./Dungeon */ "./node_modules/libram/dist/Dungeon.js");
  
  Object.keys(_Dungeon).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _Dungeon[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _Dungeon[key];
      }
    });
  });
  
  var _lib = __webpack_require__(/*! ./lib */ "./node_modules/libram/dist/lib.js");
  
  Object.keys(_lib).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _lib[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _lib[key];
      }
    });
  });
  
  var _maximize = __webpack_require__(/*! ./maximize */ "./node_modules/libram/dist/maximize.js");
  
  Object.keys(_maximize).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _maximize[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _maximize[key];
      }
    });
  });
  
  var _mood = __webpack_require__(/*! ./mood */ "./node_modules/libram/dist/mood.js");
  
  Object.keys(_mood).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _mood[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _mood[key];
      }
    });
  });
  
  var _resources = __webpack_require__(/*! ./resources */ "./node_modules/libram/dist/resources/index.js");
  
  Object.keys(_resources).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _resources[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _resources[key];
      }
    });
  });
  
  var _since = __webpack_require__(/*! ./since */ "./node_modules/libram/dist/since.js");
  
  Object.keys(_since).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _since[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _since[key];
      }
    });
  });
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  Object.keys(_templateString).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _templateString[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _templateString[key];
      }
    });
  });
  
  var _Kmail = _interopRequireDefault(__webpack_require__(/*! ./Kmail */ "./node_modules/libram/dist/Kmail.js"));
  
  var _Path = __webpack_require__(/*! ./Path */ "./node_modules/libram/dist/Path.js");
  
  Object.keys(_Path).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _Path[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _Path[key];
      }
    });
  });
  
  var _logger = _interopRequireWildcard(__webpack_require__(/*! ./logger */ "./node_modules/libram/dist/logger.js"));
  
  var _console = _interopRequireWildcard(__webpack_require__(/*! ./console */ "./node_modules/libram/dist/console.js"));
  
  exports.console = _console;
  
  var _property = _interopRequireWildcard(__webpack_require__(/*! ./property */ "./node_modules/libram/dist/property.js"));
  
  exports.property = _property;
  
  function _getRequireWildcardCache(nodeInterop) {
    if (typeof WeakMap !== "function") return null;
    var cacheBabelInterop = new WeakMap();
    var cacheNodeInterop = new WeakMap();
    return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
      return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
    })(nodeInterop);
  }
  
  function _interopRequireWildcard(obj, nodeInterop) {
    if (!nodeInterop && obj && obj.__esModule) {
      return obj;
    }
  
    if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
      return {
        "default": obj
      };
    }
  
    var cache = _getRequireWildcardCache(nodeInterop);
  
    if (cache && cache.has(obj)) {
      return cache.get(obj);
    }
  
    var newObj = {};
    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
  
    for (var key in obj) {
      if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
        var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
  
        if (desc && (desc.get || desc.set)) {
          Object.defineProperty(newObj, key, desc);
        } else {
          newObj[key] = obj[key];
        }
      }
    }
  
    newObj["default"] = obj;
  
    if (cache) {
      cache.set(obj, newObj);
    }
  
    return newObj;
  }
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      "default": obj
    };
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/lib.js":
  /*!*****************************************!*\
    !*** ./node_modules/libram/dist/lib.js ***!
    \*****************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.getSongLimit = getSongLimit;
  exports.isSong = isSong;
  exports.getActiveEffects = getActiveEffects;
  exports.getActiveSongs = getActiveSongs;
  exports.getSongCount = getSongCount;
  exports.canRememberSong = canRememberSong;
  exports.getMonsterLocations = getMonsterLocations;
  exports.getRemainingLiver = getRemainingLiver;
  exports.getRemainingStomach = getRemainingStomach;
  exports.getRemainingSpleen = getRemainingSpleen;
  exports.have = have;
  exports.haveInCampground = haveInCampground;
  exports.haveCounter = haveCounter;
  exports.haveWandererCounter = haveWandererCounter;
  exports.isVoteWandererNow = isVoteWandererNow;
  exports.isWandererNow = isWandererNow;
  exports.getKramcoWandererChance = getKramcoWandererChance;
  exports.getFamiliarWandererChance = getFamiliarWandererChance;
  exports.getWandererChance = getWandererChance;
  exports.isCurrentFamiliar = isCurrentFamiliar;
  exports.getFoldGroup = getFoldGroup;
  exports.getZapGroup = getZapGroup;
  exports.getBanishedMonsters = getBanishedMonsters;
  exports.canUse = canUse;
  exports.noneToNull = noneToNull;
  exports.getAverage = getAverage;
  exports.getAverageAdventures = getAverageAdventures;
  exports.uneffect = uneffect;
  exports.getPlayerFromIdOrName = getPlayerFromIdOrName;
  exports.Wanderer = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.constructor.js */ "./node_modules/core-js/modules/es.regexp.constructor.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
  
  __webpack_require__(/*! core-js/modules/es.number.parse-int.js */ "./node_modules/core-js/modules/es.number.parse-int.js");
  
  __webpack_require__(/*! core-js/modules/es.array.sort.js */ "./node_modules/core-js/modules/es.array.sort.js");
  
  __webpack_require__(/*! core-js/modules/es.object.entries.js */ "./node_modules/core-js/modules/es.object.entries.js");
  
  __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _property = __webpack_require__(/*! ./property */ "./node_modules/libram/dist/property.js");
  
  var _utils = __webpack_require__(/*! ./utils */ "./node_modules/libram/dist/utils.js");
  
  var _templateObject, _templateObject2;
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e2) {
            throw _e2;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e3) {
        didErr = true;
        err = _e3;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _iterableToArrayLimit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
  
    var _s, _e;
  
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  /**
   * Returns the current maximum Accordion Thief songs the player can have in their head
   *
   * @category General
   */
  
  
  function getSongLimit() {
    return 3 + ((0, _kolmafia.booleanModifier)("Four Songs") ? 1 : 0) + (0, _kolmafia.numericModifier)("Additional Song");
  }
  /**
   * Return whether the Skill or Effect provided is an Accordion Thief song
   *
   * @category General
   * @param skillOrEffect The Skill or Effect
   */
  
  
  function isSong(skillOrEffect) {
    var skill = skillOrEffect instanceof Effect ? (0, _kolmafia.toSkill)(skillOrEffect) : skillOrEffect;
    return skill["class"] === (0, _templateString.$class)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Accordion Thief"]))) && skill.buff;
  }
  /**
   * List all active Effects
   *
   * @category General
   */
  
  
  function getActiveEffects() {
    return Object.keys((0, _kolmafia.myEffects)()).map(function (e) {
      return Effect.get(e);
    });
  }
  /**
   * List currently active Accordion Thief songs
   *
   * @category General
   */
  
  
  function getActiveSongs() {
    return getActiveEffects().filter(isSong);
  }
  /**
   * List number of active Accordion Thief songs
   *
   * @category General
   */
  
  
  function getSongCount() {
    return getActiveSongs().length;
  }
  /**
   * Returns true if the player can remember another Accordion Thief song
   *
   * @category General
   * @param quantity Number of songs to test the space for
   */
  
  
  function canRememberSong() {
    var quantity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
    return getSongLimit() - getSongCount() >= quantity;
  }
  /**
   * Return the locations in which the given monster can be encountered naturally
   *
   * @category General
   * @param monster Monster to find
   */
  
  
  function getMonsterLocations(monster) {
    return Location.all().filter(function (location) {
      return monster.name in (0, _kolmafia.appearanceRates)(location);
    });
  }
  /**
   * Return the player's remaining liver space
   *
   * @category General
   */
  
  
  function getRemainingLiver() {
    return (0, _kolmafia.inebrietyLimit)() - (0, _kolmafia.myInebriety)();
  }
  /**
   * Return the player's remaining stomach space
   *
   * @category General
   */
  
  
  function getRemainingStomach() {
    return (0, _kolmafia.fullnessLimit)() - (0, _kolmafia.myFullness)();
  }
  /**
   * Return the player's remaining spleen space
   *
   * @category General
   */
  
  
  function getRemainingSpleen() {
    return (0, _kolmafia.spleenLimit)() - (0, _kolmafia.mySpleenUse)();
  }
  /**
   * Return whether the player "has" any entity which one could feasibly "have".
   *
   * @category General
   * @param thing Thing to check
   * @param quantity Number to check that the player has
   */
  
  
  function have(thing) {
    var quantity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  
    if (thing instanceof Effect) {
      return (0, _kolmafia.haveEffect)(thing) >= quantity;
    }
  
    if (thing instanceof Familiar) {
      return (0, _kolmafia.haveFamiliar)(thing);
    }
  
    if (thing instanceof Item) {
      return (0, _kolmafia.availableAmount)(thing) >= quantity;
    }
  
    if (thing instanceof Servant) {
      return (0, _kolmafia.haveServant)(thing);
    }
  
    if (thing instanceof Skill) {
      return (0, _kolmafia.haveSkill)(thing);
    }
  
    if (thing instanceof Thrall) {
      var thrall = (0, _kolmafia.myThrall)();
      return thrall.id === thing.id && thrall.level >= quantity;
    }
  
    return false;
  }
  /**
   * Return whether an item is in the player's campground
   *
   * @category General
   * @param item The item mafia uses to represent the campground item
   */
  
  
  function haveInCampground(item) {
    return Object.keys((0, _kolmafia.getCampground)()).map(function (i) {
      return Item.get(i);
    }).includes(item);
  }
  
  var Wanderer;
  exports.Wanderer = Wanderer;
  
  (function (Wanderer) {
    Wanderer["Digitize"] = "Digitize Monster";
    Wanderer["Enamorang"] = "Enamorang Monster";
    Wanderer["Familiar"] = "Familiar";
    Wanderer["Holiday"] = "Holiday Monster";
    Wanderer["Kramco"] = "Kramco";
    Wanderer["Nemesis"] = "Nemesis Assassin";
    Wanderer["Portscan"] = "portscan.edu";
    Wanderer["Romantic"] = "Romantic Monster";
    Wanderer["Vote"] = "Vote Monster";
  })(Wanderer || (exports.Wanderer = Wanderer = {}));
  
  var deterministicWanderers = [Wanderer.Digitize, Wanderer.Portscan];
  /**
   * Return whether the player has the queried counter
   *
   * @category General
   */
  
  function haveCounter(counterName) {
    var minTurns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
    var maxTurns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
    return (0, _kolmafia.getCounters)(counterName, minTurns, maxTurns) === counterName;
  }
  /**
   * Return whether the player has the queried wandering counter
   *
   * @category Wanderers
   */
  
  
  function haveWandererCounter(wanderer) {
    if (deterministicWanderers.includes(wanderer)) {
      return haveCounter(wanderer);
    }
  
    var begin = wanderer + " window begin";
    var end = wanderer + " window end";
    return haveCounter(begin) || haveCounter(end);
  }
  /**
   * Returns whether the player will encounter a vote wanderer on the next turn,
   * providing an "I Voted!" sticker is equipped.
   *
   * @category Wanderers
   */
  
  
  function isVoteWandererNow() {
    return (0, _kolmafia.totalTurnsPlayed)() % 11 == 1;
  }
  /**
   * Tells us whether we can expect a given wanderer now. Behaves differently
   * for different types of wanderer.
   *
   * - For deterministic wanderers, return whether the player will encounter
   *   the queried wanderer on the next turn
   *
   * - For variable wanderers (window), return whether the player is within
   *   an encounter window for the queried wanderer
   *
   * - For variable wanderers (chance per turn), returns true unless the player
   *   has exhausted the number of wanderers possible
   *
   * @category Wanderers
   * @param wanderer Wanderer to check
   */
  
  
  function isWandererNow(wanderer) {
    if (deterministicWanderers.includes(wanderer)) {
      return haveCounter(wanderer, 0, 0);
    }
  
    if (wanderer == Wanderer.Kramco) {
      return true;
    }
  
    if (wanderer === Wanderer.Vote) {
      return isVoteWandererNow();
    }
  
    if (wanderer === Wanderer.Familiar) {
      return (0, _property.get)("_hipsterAdv") < 7;
    }
  
    var begin = wanderer + " window begin";
    var end = wanderer + " window end";
    return !haveCounter(begin, 1) && haveCounter(end);
  }
  /**
   * Returns the float chance the player will encounter a sausage goblin on the
   * next turn, providing the Kramco Sausage-o-Matic is equipped.
   *
   * @category Wanderers
   */
  
  
  function getKramcoWandererChance() {
    var fights = (0, _property.get)("_sausageFights");
    var lastFight = (0, _property.get)("_lastSausageMonsterTurn");
    var totalTurns = (0, _kolmafia.totalTurnsPlayed)();
  
    if (fights < 1) {
      return lastFight === totalTurns && (0, _kolmafia.myTurncount)() < 1 ? 0.5 : 1.0;
    }
  
    var turnsSinceLastFight = totalTurns - lastFight;
    return Math.min(1.0, (turnsSinceLastFight + 1) / (5 + fights * 3 + Math.pow(Math.max(0, fights - 5), 3)));
  }
  /**
   * Returns the float chance the player will encounter an Artistic Goth Kid or
   * Mini-Hipster wanderer on the next turn, providing a familiar is equipped.
   *
   * NOTE: You must complete one combat with the Artistic Goth Kid before you
   * can encounter any wanderers. Consequently,ƒ the first combat with the
   * Artist Goth Kid is effectively 0% chance to encounter a wanderer.
   *
   * @category Wanderers
   */
  
  
  function getFamiliarWandererChance() {
    var totalFights = (0, _property.get)("_hipsterAdv");
    var probability = [0.5, 0.4, 0.3, 0.2];
  
    if (totalFights < 4) {
      return probability[totalFights];
    }
  
    return totalFights > 7 ? 0.0 : 0.1;
  }
  /**
   * Returns the float chance the player will encounter the queried wanderer
   * on the next turn.
   *
   * @category Wanderers
   * @param wanderer Wanderer to check
   */
  
  
  function getWandererChance(wanderer) {
    if (deterministicWanderers.includes(wanderer)) {
      return haveCounter(wanderer, 0, 0) ? 1.0 : 0.0;
    }
  
    if (wanderer === Wanderer.Kramco) {
      getKramcoWandererChance();
    }
  
    if (wanderer === Wanderer.Vote) {
      return isVoteWandererNow() ? 1.0 : 0.0;
    }
  
    if (wanderer === Wanderer.Familiar) {
      getFamiliarWandererChance();
    }
  
    var begin = wanderer + " window begin";
    var end = wanderer + " window end";
  
    if (haveCounter(begin, 1, 100)) {
      return 0.0;
    }
  
    var counters = (0, _property.get)("relayCounters");
    var re = new RegExp("(\\d+):" + end);
    var matches = counters.match(re);
  
    if (matches && matches.length === 2) {
      var window = Number.parseInt(matches[1]) - (0, _kolmafia.myTurncount)();
      return 1.0 / window;
    }
  
    return 0.0;
  }
  /**
   * Returns true if the player's current familiar is equal to the one supplied
   *
   * @category General
   * @param familiar Familiar to check
   */
  
  
  function isCurrentFamiliar(familiar) {
    return (0, _kolmafia.myFamiliar)() === familiar;
  }
  /**
   * Returns the fold group (if any) of which the given item is a part
   *
   * @category General
   * @param item Item that is part of the required fold group
   */
  
  
  function getFoldGroup(item) {
    return Object.entries((0, _kolmafia.getRelated)(item, "fold")).sort(function (_ref, _ref2) {
      var _ref3 = _slicedToArray(_ref, 2),
          a = _ref3[1];
  
      var _ref4 = _slicedToArray(_ref2, 2),
          b = _ref4[1];
  
      return a - b;
    }).map(function (_ref5) {
      var _ref6 = _slicedToArray(_ref5, 1),
          i = _ref6[0];
  
      return Item.get(i);
    });
  }
  /**
   * Returns the zap group (if any) of which the given item is a part
   *
   * @category General
   * @param item Item that is part of the required zap group
   */
  
  
  function getZapGroup(item) {
    return Object.keys((0, _kolmafia.getRelated)(item, "zap")).map(function (i) {
      return Item.get(i);
    });
  }
  /**
   * Get a map of banished monsters keyed by what banished them
   *
   * @category General
   */
  
  
  function getBanishedMonsters() {
    var banishes = (0, _utils.chunk)((0, _property.get)("banishedMonsters").split(":"), 3);
    var result = new Map();
  
    var _iterator = _createForOfIteratorHelper(banishes),
        _step;
  
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var _step$value = _slicedToArray(_step.value, 2),
            foe = _step$value[0],
            banisher = _step$value[1];
  
        if (foe === undefined || banisher === undefined) break; // toItem doesn"t error if the item doesn"t exist, so we have to use that.
  
        var banisherItem = (0, _kolmafia.toItem)(banisher);
        var banisherObject = [Item.get("none"), null].includes(banisherItem) ? Skill.get(banisher) : banisherItem;
        result.set(banisherObject, Monster.get(foe));
      }
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
  
    return result;
  }
  /**
   * Returns true if the item is usable
   *
   * This function will be an ongoing work in progress
   *
   * @param item Item to check
   */
  
  
  function canUse(item) {
    var path = (0, _kolmafia.myPath)();
  
    if (path !== "Nuclear Autumn") {
      if ((0, _templateString.$items)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Shrieking Weasel holo-record, Power-Guy 2000 holo-record, Lucky Strikes holo-record, EMD holo-record, Superdrifter holo-record, The Pigs holo-record, Drunk Uncles holo-record"]))).includes(item)) {
        return false;
      }
    }
  
    if (path === "G-Lover") {
      if (!item.name.toLowerCase().includes("g")) return false;
    }
  
    if (path === "Bees Hate You") {
      if (item.name.toLowerCase().includes("b")) return false;
    }
  
    return true;
  }
  /**
   * Turn KoLmafia `none`s to JavaScript `null`s
   *
   * @param thing Thing that can have a mafia "none" value
   */
  
  
  function noneToNull(thing) {
    if (thing instanceof Effect) {
      return thing === Effect.get("none") ? null : thing;
    }
  
    if (thing instanceof Familiar) {
      return thing === Familiar.get("none") ? null : thing;
    }
  
    if (thing instanceof Item) {
      return thing === Item.get("none") ? null : thing;
    }
  
    return thing;
  }
  /**
   * Return the average value from the sort of range that KoLmafia encodes as a string
   *
   * @param range KoLmafia-style range string
   */
  
  
  function getAverage(range) {
    var _range$match;
  
    if (range.indexOf("-") < 0) return Number(range);
  
    var _ref7 = (_range$match = range.match(/(-?[0-9]+)-(-?[0-9]+)/)) !== null && _range$match !== void 0 ? _range$match : ["0", "0", "0"],
        _ref8 = _slicedToArray(_ref7, 3),
        lower = _ref8[1],
        upper = _ref8[2];
  
    return (Number(lower) + Number(upper)) / 2;
  }
  /**
   * Return average adventures expected from consuming an item
   *
   * If item is not a consumable, will just return "0".
   *
   * @param item Consumable item
   */
  
  
  function getAverageAdventures(item) {
    return getAverage(item.adventures);
  }
  /**
   * Remove an effect
   *
   * @category General
   * @param effect Effect to remove
   */
  
  
  function uneffect(effect) {
    return (0, _kolmafia.cliExecute)("uneffect ".concat(effect.name));
  }
  /**
   * Get both the name and id of a player from either their name or id
   *
   * @param idOrName Id or name of player
   * @returns Object containing id and name of player
   */
  
  
  function getPlayerFromIdOrName(idOrName) {
    return typeof idOrName === "string" ? {
      name: idOrName,
      id: parseInt((0, _kolmafia.getPlayerId)(idOrName))
    } : {
      name: (0, _kolmafia.getPlayerName)(idOrName),
      id: idOrName
    };
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/logger.js":
  /*!********************************************!*\
    !*** ./node_modules/libram/dist/logger.js ***!
    \********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports["default"] = void 0;
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  var defaultHandlers = {
    info: function info(message) {
      return (0, _kolmafia.printHtml)("<b>[Libram]</b> ".concat(message));
    },
    warning: function warning(message) {
      return (0, _kolmafia.printHtml)("<span style=\"background: orange; color: white;\"><b>[Libram]</b> ".concat(message, "</span>"));
    },
    error: function error(_error) {
      return (0, _kolmafia.printHtml)("<span style=\"background: red; color: white;\"><b>[Libram]</b> ".concat(_error.toString(), "</span>"));
    }
  };
  
  var Logger = /*#__PURE__*/function () {
    function Logger() {
      _classCallCheck(this, Logger);
  
      _defineProperty(this, "handlers", defaultHandlers);
    }
  
    _createClass(Logger, [{
      key: "setHandler",
      value: // eslint-disable-next-line @typescript-eslint/no-explicit-any
      function setHandler(level, callback) {
        this.handlers[level] = callback;
      }
    }, {
      key: "log",
      value: // eslint-disable-next-line @typescript-eslint/no-explicit-any
      function log(level, message) {
        this.handlers[level](message);
      }
    }, {
      key: "info",
      value: function info(message) {
        this.log("info", message);
      }
    }, {
      key: "warning",
      value: function warning(message) {
        this.log("warning", message);
      }
    }, {
      key: "error",
      value: function error(message) {
        this.log("error", message);
      }
    }]);
  
    return Logger;
  }();
  
  var _default = new Logger();
  
  exports["default"] = _default;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/maximize.js":
  /*!**********************************************!*\
    !*** ./node_modules/libram/dist/maximize.js ***!
    \**********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.setDefaultMaximizeOptions = setDefaultMaximizeOptions;
  exports.maximizeCached = maximizeCached;
  exports.maximizeRequirementsCached = maximizeRequirementsCached;
  exports.Requirement = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.array.sort.js */ "./node_modules/core-js/modules/es.array.sort.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _logger = _interopRequireDefault(__webpack_require__(/*! ./logger */ "./node_modules/libram/dist/logger.js"));
  
  var _merge2 = _interopRequireDefault(__webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js"));
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37;
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      "default": obj
    };
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _classPrivateFieldGet(receiver, privateMap) {
    var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
  
    return _classApplyDescriptorGet(receiver, descriptor);
  }
  
  function _classApplyDescriptorGet(receiver, descriptor) {
    if (descriptor.get) {
      return descriptor.get.call(receiver);
    }
  
    return descriptor.value;
  }
  
  function _classPrivateFieldSet(receiver, privateMap, value) {
    var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
  
    _classApplyDescriptorSet(receiver, descriptor, value);
  
    return value;
  }
  
  function _classExtractFieldDescriptor(receiver, privateMap, action) {
    if (!privateMap.has(receiver)) {
      throw new TypeError("attempted to " + action + " private field on non-instance");
    }
  
    return privateMap.get(receiver);
  }
  
  function _classApplyDescriptorSet(receiver, descriptor, value) {
    if (descriptor.set) {
      descriptor.set.call(receiver, value);
    } else {
      if (!descriptor.writable) {
        throw new TypeError("attempted to set read only private field");
      }
  
      descriptor.value = value;
    }
  }
  
  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  }
  
  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }
  
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  }
  
  function ownKeys(object, enumerableOnly) {
    var keys = Object.keys(object);
  
    if (Object.getOwnPropertySymbols) {
      var symbols = Object.getOwnPropertySymbols(object);
  
      if (enumerableOnly) {
        symbols = symbols.filter(function (sym) {
          return Object.getOwnPropertyDescriptor(object, sym).enumerable;
        });
      }
  
      keys.push.apply(keys, symbols);
    }
  
    return keys;
  }
  
  function _objectSpread(target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i] != null ? arguments[i] : {};
  
      if (i % 2) {
        ownKeys(Object(source), true).forEach(function (key) {
          _defineProperty(target, key, source[key]);
        });
      } else if (Object.getOwnPropertyDescriptors) {
        Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
      } else {
        ownKeys(Object(source)).forEach(function (key) {
          Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
        });
      }
    }
  
    return target;
  }
  
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _iterableToArrayLimit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
  
    var _s, _e;
  
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e2) {
            throw _e2;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e3) {
        didErr = true;
        err = _e3;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var defaultMaximizeOptions = {
    updateOnFamiliarChange: true,
    updateOnCanEquipChanged: true,
    forceEquip: [],
    preventEquip: [],
    bonusEquip: new Map(),
    onlySlot: [],
    preventSlot: []
  };
  /**
   *
   * @param options Default options for each maximizer run.
   * @param options.updateOnFamiliarChange Re-run the maximizer if familiar has changed. Default true.
   * @param options.updateOnCanEquipChanged Re-run the maximizer if stats have changed what can be equipped. Default true.
   * @param options.forceEquip Equipment to force-equip ("equip X").
   * @param options.preventEquip Equipment to prevent equipping ("-equip X").
   * @param options.bonusEquip Equipment to apply a bonus to ("200 bonus X").
   */
  
  function setDefaultMaximizeOptions(options) {
    Object.assign(defaultMaximizeOptions, options);
  } // Subset of slots that are valid for caching.
  
  
  var cachedSlots = (0, _templateString.$slots)(_templateObject || (_templateObject = _taggedTemplateLiteral(["hat, weapon, off-hand, back, shirt, pants, acc1, acc2, acc3, familiar"])));
  
  var CacheEntry = function CacheEntry(equipment, rider, familiar, canEquipItemCount) {
    _classCallCheck(this, CacheEntry);
  
    _defineProperty(this, "equipment", void 0);
  
    _defineProperty(this, "rider", void 0);
  
    _defineProperty(this, "familiar", void 0);
  
    _defineProperty(this, "canEquipItemCount", void 0);
  
    this.equipment = equipment;
    this.rider = rider;
    this.familiar = familiar;
    this.canEquipItemCount = canEquipItemCount;
  }; // Objective cache entries.
  
  
  var cachedObjectives = {}; // Cache to prevent rescanning all items unnecessarily
  
  var cachedStats = [0, 0, 0];
  var cachedCanEquipItemCount = 0;
  /**
   * Count the number of unique items that can be equipped.
   * @returns The count of unique items.
   */
  
  function canEquipItemCount() {
    var stats = (0, _templateString.$stats)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Muscle, Mysticality, Moxie"]))).map(function (stat) {
      return Math.min((0, _kolmafia.myBasestat)(stat), 300);
    });
  
    if (stats.every(function (value, index) {
      return value === cachedStats[index];
    })) {
      return cachedCanEquipItemCount;
    }
  
    cachedStats = stats;
    cachedCanEquipItemCount = Item.all().filter(function (item) {
      return (0, _kolmafia.canEquip)(item);
    }).length;
    return cachedCanEquipItemCount;
  }
  /**
   * Checks the objective cache for a valid entry.
   * @param cacheKey The cache key to check.
   * @param updateOnFamiliarChange Ignore cache if familiar has changed.
   * @param updateOnCanEquipChanged Ignore cache if stats have changed what can be equipped.
   * @returns A valid CacheEntry or null.
   */
  
  
  function checkCache(cacheKey, updateOnFamiliarChange, updateOnCanEquipChanged) {
    var entry = cachedObjectives[cacheKey];
  
    if (!entry) {
      return null;
    }
  
    if (updateOnFamiliarChange && (0, _kolmafia.myFamiliar)() !== entry.familiar) {
      _logger["default"].warning("Equipment found in maximize cache but familiar is different.");
  
      return null;
    }
  
    if (updateOnCanEquipChanged && entry.canEquipItemCount !== canEquipItemCount()) {
      _logger["default"].warning("Equipment found in maximize cache but equippable item list is out of date.");
  
      return null;
    }
  
    return entry;
  }
  /**
   * Applies equipment that was found in the cache.
   * @param entry The CacheEntry to apply
   */
  
  
  function applyCached(entry) {
    var _iterator = _createForOfIteratorHelper(entry.equipment),
        _step;
  
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var _step$value = _slicedToArray(_step.value, 2),
            slot = _step$value[0],
            item = _step$value[1];
  
        if ((0, _kolmafia.equippedItem)(slot) !== item && (0, _kolmafia.availableAmount)(item) > 0) {
          (0, _kolmafia.equip)(slot, item);
        }
      }
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Crown of Thrones"])))) > 0 && entry.rider.get((0, _templateString.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Crown of Thrones"]))))) {
      (0, _kolmafia.enthroneFamiliar)(entry.rider.get((0, _templateString.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Crown of Thrones"])))) || (0, _templateString.$familiar)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["none"]))));
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Buddy Bjorn"])))) > 0 && entry.rider.get((0, _templateString.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Buddy Bjorn"]))))) {
      (0, _kolmafia.bjornifyFamiliar)(entry.rider.get((0, _templateString.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Buddy Bjorn"])))) || (0, _templateString.$familiar)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["none"]))));
    }
  }
  /**
   * Verifies that a CacheEntry was applied successfully.
   * @param entry The CacheEntry to verify
   * @returns If all desired equipment was appliedn in the correct slots.
   */
  
  
  function verifyCached(entry) {
    var success = true;
  
    var _iterator2 = _createForOfIteratorHelper(entry.equipment),
        _step2;
  
    try {
      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
        var _step2$value = _slicedToArray(_step2.value, 2),
            slot = _step2$value[0],
            item = _step2$value[1];
  
        if ((0, _kolmafia.equippedItem)(slot) !== item) {
          _logger["default"].warning("Failed to apply cached ".concat(item, " in ").concat(slot, "."));
  
          success = false;
        }
      }
    } catch (err) {
      _iterator2.e(err);
    } finally {
      _iterator2.f();
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Crown of Thrones"])))) > 0 && entry.rider.get((0, _templateString.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Crown of Thrones"]))))) {
      if (entry.rider.get((0, _templateString.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Crown of Thrones"])))) !== (0, _kolmafia.myEnthronedFamiliar)()) {
        _logger["default"].warning("Failed to apply ".concat(entry.rider.get((0, _templateString.$item)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Crown of Thrones"])))), " in ").concat((0, _templateString.$item)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Crown of Thrones"]))), "."));
  
        success = false;
      }
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Buddy Bjorn"])))) > 0 && entry.rider.get((0, _templateString.$item)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Buddy Bjorn"]))))) {
      if (entry.rider.get((0, _templateString.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["Buddy Bjorn"])))) !== (0, _kolmafia.myBjornedFamiliar)()) {
        _logger["default"].warning("Failed to apply".concat(entry.rider.get((0, _templateString.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["Buddy Bjorn"])))), " in ").concat((0, _templateString.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["Buddy Bjorn"]))), "."));
  
        success = false;
      }
    }
  
    return success;
  }
  /**
   * Save current equipment to the objective cache.
   * @param cacheKey The cache key to save.
   */
  
  
  function saveCached(cacheKey, options) {
    var equipment = new Map();
    var rider = new Map();
  
    var _iterator3 = _createForOfIteratorHelper(cachedSlots),
        _step3;
  
    try {
      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
        var _slot2 = _step3.value;
        equipment.set(_slot2, (0, _kolmafia.equippedItem)(_slot2));
      }
    } catch (err) {
      _iterator3.e(err);
    } finally {
      _iterator3.f();
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["card sleeve"])))) > 0) {
      equipment.set((0, _templateString.$slot)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["card-sleeve"]))), (0, _kolmafia.equippedItem)((0, _templateString.$slot)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["card-sleeve"])))));
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Crown of Thrones"])))) > 0) {
      rider.set((0, _templateString.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["Crown of Thrones"]))), (0, _kolmafia.myEnthronedFamiliar)());
    }
  
    if ((0, _kolmafia.equippedAmount)((0, _templateString.$item)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Buddy Bjorn"])))) > 0) {
      rider.set((0, _templateString.$item)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["Buddy Bjorn"]))), (0, _kolmafia.myBjornedFamiliar)());
    }
  
    if (options.preventSlot && options.preventSlot.length > 0) {
      var _iterator4 = _createForOfIteratorHelper(options.preventSlot),
          _step4;
  
      try {
        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
          var slot = _step4.value;
          equipment["delete"](slot);
        }
      } catch (err) {
        _iterator4.e(err);
      } finally {
        _iterator4.f();
      }
  
      if (options.preventSlot.includes((0, _templateString.$slot)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["buddy-bjorn"]))))) {
        rider["delete"]((0, _templateString.$item)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["Buddy Bjorn"]))));
      }
  
      if (options.preventSlot.includes((0, _templateString.$slot)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["crown-of-thrones"]))))) {
        rider["delete"]((0, _templateString.$item)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Crown of Thrones"]))));
      }
    }
  
    if (options.onlySlot && options.onlySlot.length > 0) {
      var _iterator5 = _createForOfIteratorHelper(Slot.all()),
          _step5;
  
      try {
        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
          var _slot = _step5.value;
  
          if (!options.onlySlot.includes(_slot)) {
            equipment["delete"](_slot);
          }
        }
      } catch (err) {
        _iterator5.e(err);
      } finally {
        _iterator5.f();
      }
  
      if (!options.onlySlot.includes((0, _templateString.$slot)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["buddy-bjorn"]))))) {
        rider["delete"]((0, _templateString.$item)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Buddy Bjorn"]))));
      }
  
      if (!options.onlySlot.includes((0, _templateString.$slot)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["crown-of-thrones"]))))) {
        rider["delete"]((0, _templateString.$item)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["Crown of Thrones"]))));
      }
    }
  
    cachedObjectives[cacheKey] = new CacheEntry(equipment, rider, (0, _kolmafia.myFamiliar)(), canEquipItemCount());
  }
  /**
   * Run the maximizer, but only if the objective and certain pieces of game state haven't changed since it was last run.
   * @param objectives Objectives to maximize for.
   * @param options Options for this run of the maximizer.
   * @param options.updateOnFamiliarChange Re-run the maximizer if familiar has changed. Default true.
   * @param options.updateOnCanEquipChanged Re-run the maximizer if stats have changed what can be equipped. Default true.
   * @param options.forceEquip Equipment to force-equip ("equip X").
   * @param options.preventEquip Equipment to prevent equipping ("-equip X").
   * @param options.bonusEquip Equipment to apply a bonus to ("200 bonus X").
   */
  
  
  function maximizeCached(objectives) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  
    var _defaultMaximizeOptio = _objectSpread(_objectSpread({}, defaultMaximizeOptions), options),
        updateOnFamiliarChange = _defaultMaximizeOptio.updateOnFamiliarChange,
        updateOnCanEquipChanged = _defaultMaximizeOptio.updateOnCanEquipChanged,
        forceEquip = _defaultMaximizeOptio.forceEquip,
        preventEquip = _defaultMaximizeOptio.preventEquip,
        bonusEquip = _defaultMaximizeOptio.bonusEquip,
        onlySlot = _defaultMaximizeOptio.onlySlot,
        preventSlot = _defaultMaximizeOptio.preventSlot; // Sort each group in objective to ensure consistent ordering in string
  
  
    var objective = [].concat(_toConsumableArray(objectives.sort()), _toConsumableArray(forceEquip.map(function (item) {
      return "equip ".concat(item);
    }).sort()), _toConsumableArray(preventEquip.map(function (item) {
      return "-equip ".concat(item);
    }).sort()), _toConsumableArray(onlySlot.filter(function (slot) {
      return !(0, _templateString.$slots)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["buddy-bjorn, crown-of-thrones"]))).includes(slot);
    }).map(function (slot) {
      return "".concat(slot);
    }).sort()), _toConsumableArray(preventSlot.filter(function (slot) {
      return !(0, _templateString.$slots)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["buddy-bjorn, crown-of-thrones"]))).includes(slot);
    }).map(function (slot) {
      return "-".concat(slot);
    }).sort()), _toConsumableArray(Array.from(bonusEquip.entries()).filter(function (_ref) {
      var _ref2 = _slicedToArray(_ref, 2),
          bonus = _ref2[1];
  
      return bonus !== 0;
    }).map(function (_ref3) {
      var _ref4 = _slicedToArray(_ref3, 2),
          item = _ref4[0],
          bonus = _ref4[1];
  
      return "".concat(Math.round(bonus * 100) / 100, " bonus ").concat(item);
    }).sort())).join(", ");
    var cacheEntry = checkCache(objective, updateOnFamiliarChange, updateOnCanEquipChanged);
  
    if (cacheEntry) {
      _logger["default"].info("Equipment found in maximize cache, equipping...");
  
      applyCached(cacheEntry);
  
      if (verifyCached(cacheEntry)) {
        _logger["default"].info("Equipped cached ".concat(objective));
  
        return;
      }
  
      _logger["default"].warning("Maximize cache application failed, maximizing...");
    }
  
    (0, _kolmafia.maximize)(objective, false);
    saveCached(objective, options);
  }
  
  var _maximizeParameters = /*#__PURE__*/new WeakMap();
  
  var _maximizeOptions = /*#__PURE__*/new WeakMap();
  
  var Requirement = /*#__PURE__*/function () {
    function Requirement(maximizeParameters, maximizeOptions) {
      _classCallCheck(this, Requirement);
  
      _maximizeParameters.set(this, {
        writable: true,
        value: void 0
      });
  
      _maximizeOptions.set(this, {
        writable: true,
        value: void 0
      });
  
      _classPrivateFieldSet(this, _maximizeParameters, maximizeParameters);
  
      _classPrivateFieldSet(this, _maximizeOptions, maximizeOptions);
    }
  
    _createClass(Requirement, [{
      key: "maximizeParameters",
      get: function get() {
        return _classPrivateFieldGet(this, _maximizeParameters);
      }
    }, {
      key: "maximizeOptions",
      get: function get() {
        return _classPrivateFieldGet(this, _maximizeOptions);
      }
    }, {
      key: "merge",
      value: function merge(other) {
        return (0, _merge2["default"])(this, other);
      }
    }], [{
      key: "merge",
      value: function merge(allRequirements) {
        return allRequirements.reduce(function (x, y) {
          return x.merge(y);
        }, new Requirement([], {}));
      }
    }]);
  
    return Requirement;
  }();
  
  exports.Requirement = Requirement;
  
  function maximizeRequirementsCached(requirements) {
    var compiledRequirements = Requirement.merge(requirements);
    maximizeCached(compiledRequirements.maximizeParameters, compiledRequirements.maximizeOptions);
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/mood.js":
  /*!******************************************!*\
    !*** ./node_modules/libram/dist/mood.js ***!
    \******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ "./node_modules/core-js/modules/es.reflect.construct.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.Mood = exports.MagicalSausages = exports.OscusSoda = exports.MpSource = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ./lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ./property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ./template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _utils = __webpack_require__(/*! ./utils */ "./node_modules/libram/dist/utils.js");
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
  
  function ownKeys(object, enumerableOnly) {
    var keys = Object.keys(object);
  
    if (Object.getOwnPropertySymbols) {
      var symbols = Object.getOwnPropertySymbols(object);
  
      if (enumerableOnly) {
        symbols = symbols.filter(function (sym) {
          return Object.getOwnPropertyDescriptor(object, sym).enumerable;
        });
      }
  
      keys.push.apply(keys, symbols);
    }
  
    return keys;
  }
  
  function _objectSpread(target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i] != null ? arguments[i] : {};
  
      if (i % 2) {
        ownKeys(Object(source), true).forEach(function (key) {
          _defineProperty(target, key, source[key]);
        });
      } else if (Object.getOwnPropertyDescriptors) {
        Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
      } else {
        ownKeys(Object(source)).forEach(function (key) {
          Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
        });
      }
    }
  
    return target;
  }
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e) {
            throw _e;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e2) {
        didErr = true;
        err = _e2;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }
  
    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }
  
  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };
  
    return _setPrototypeOf(o, p);
  }
  
  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();
  
    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;
  
      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;
  
        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }
  
      return _possibleConstructorReturn(this, result);
    };
  }
  
  function _possibleConstructorReturn(self, call) {
    if (call && (_typeof(call) === "object" || typeof call === "function")) {
      return call;
    }
  
    return _assertThisInitialized(self);
  }
  
  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }
  
    return self;
  }
  
  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;
  
    try {
      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }
  
  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  var MpSource = /*#__PURE__*/function () {
    function MpSource() {
      _classCallCheck(this, MpSource);
    }
  
    _createClass(MpSource, [{
      key: "usesRemaining",
      value: function usesRemaining() {
        return null;
      }
    }, {
      key: "availableMpMax",
      value: function availableMpMax() {
        return this.availableMpMin();
      }
    }]);
  
    return MpSource;
  }();
  
  exports.MpSource = MpSource;
  
  var OscusSoda = /*#__PURE__*/function (_MpSource) {
    _inherits(OscusSoda, _MpSource);
  
    var _super = _createSuper(OscusSoda);
  
    function OscusSoda() {
      _classCallCheck(this, OscusSoda);
  
      return _super.apply(this, arguments);
    }
  
    _createClass(OscusSoda, [{
      key: "available",
      value: function available() {
        return (0, _lib.have)((0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Oscus's neverending soda"]))));
      }
    }, {
      key: "usesRemaining",
      value: function usesRemaining() {
        return (0, _property.get)("oscusSodaUsed") ? 0 : 1;
      }
    }, {
      key: "availableMpMin",
      value: function availableMpMin() {
        return this.available() ? 200 : 0;
      }
    }, {
      key: "availableMpMax",
      value: function availableMpMax() {
        return this.available() ? 300 : 0;
      }
    }, {
      key: "execute",
      value: function execute() {
        (0, _kolmafia.use)((0, _templateString.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Oscus's neverending soda"]))));
      }
    }]);
  
    return OscusSoda;
  }(MpSource);
  
  exports.OscusSoda = OscusSoda;
  
  _defineProperty(OscusSoda, "instance", new OscusSoda());
  
  var MagicalSausages = /*#__PURE__*/function (_MpSource2) {
    _inherits(MagicalSausages, _MpSource2);
  
    var _super2 = _createSuper(MagicalSausages);
  
    function MagicalSausages() {
      _classCallCheck(this, MagicalSausages);
  
      return _super2.apply(this, arguments);
    }
  
    _createClass(MagicalSausages, [{
      key: "usesRemaining",
      value: function usesRemaining() {
        return 23 - (0, _property.get)("_sausagesEaten");
      }
    }, {
      key: "availableMpMin",
      value: function availableMpMin() {
        var maxSausages = Math.min(23 - (0, _property.get)("_sausagesEaten"), (0, _kolmafia.itemAmount)((0, _templateString.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["magical sausage"])))) + (0, _kolmafia.itemAmount)((0, _templateString.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["magical sausage casing"])))));
        return Math.min((0, _kolmafia.myMaxmp)(), 999) * maxSausages;
      }
    }, {
      key: "execute",
      value: function execute() {
        var mpSpaceAvailable = (0, _kolmafia.myMaxmp)() - (0, _kolmafia.myMp)();
        if (mpSpaceAvailable < 700) return;
        var maxSausages = Math.min(23 - (0, _property.get)("_sausagesEaten"), (0, _kolmafia.itemAmount)((0, _templateString.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["magical sausage"])))) + (0, _kolmafia.itemAmount)((0, _templateString.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["magical sausage casing"])))), Math.floor(((0, _kolmafia.myMaxmp)() - (0, _kolmafia.myMp)()) / Math.min((0, _kolmafia.myMaxmp)() - (0, _kolmafia.myMp)(), 999)));
        (0, _kolmafia.retrieveItem)(maxSausages, (0, _templateString.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["magical sausage"]))));
        (0, _kolmafia.eat)(maxSausages, (0, _templateString.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["magical sausage"]))));
      }
    }]);
  
    return MagicalSausages;
  }(MpSource);
  
  exports.MagicalSausages = MagicalSausages;
  
  _defineProperty(MagicalSausages, "instance", new MagicalSausages());
  
  var MoodElement = /*#__PURE__*/function () {
    function MoodElement() {
      _classCallCheck(this, MoodElement);
    }
  
    _createClass(MoodElement, [{
      key: "mpCostPerTurn",
      value: function mpCostPerTurn() {
        return 0;
      }
    }, {
      key: "turnIncrement",
      value: function turnIncrement() {
        return 1;
      }
    }]);
  
    return MoodElement;
  }();
  
  var SkillMoodElement = /*#__PURE__*/function (_MoodElement) {
    _inherits(SkillMoodElement, _MoodElement);
  
    var _super3 = _createSuper(SkillMoodElement);
  
    function SkillMoodElement(skill) {
      var _this;
  
      _classCallCheck(this, SkillMoodElement);
  
      _this = _super3.call(this);
  
      _defineProperty(_assertThisInitialized(_this), "skill", void 0);
  
      _this.skill = skill;
      return _this;
    }
  
    _createClass(SkillMoodElement, [{
      key: "mpCostPerTurn",
      value: function mpCostPerTurn() {
        var turns = (0, _kolmafia.turnsPerCast)(this.skill);
        return turns > 0 ? (0, _kolmafia.mpCost)(this.skill) / turns : 0;
      }
    }, {
      key: "turnIncrement",
      value: function turnIncrement() {
        return (0, _kolmafia.turnsPerCast)(this.skill);
      }
    }, {
      key: "execute",
      value: function execute(mood, ensureTurns) {
        var effect = (0, _kolmafia.toEffect)(this.skill);
        var initialTurns = (0, _kolmafia.haveEffect)(effect);
        if (!(0, _kolmafia.haveSkill)(this.skill)) return false;
        if (initialTurns >= ensureTurns) return true; // Deal with song slots.
  
        if (mood.options.songSlots.length > 0 && (0, _lib.isSong)(this.skill) && !(0, _lib.have)(effect)) {
          var activeSongs = (0, _lib.getActiveSongs)();
  
          var _iterator = _createForOfIteratorHelper(activeSongs),
              _step;
  
          try {
            var _loop = function _loop() {
              var song = _step.value;
              var slot = mood.options.songSlots.find(function (slot) {
                return slot.includes(song);
              });
              if (!slot || slot.includes(effect)) (0, _kolmafia.cliExecute)("shrug ".concat(song));
            };
  
            for (_iterator.s(); !(_step = _iterator.n()).done;) {
              _loop();
            }
          } catch (err) {
            _iterator.e(err);
          } finally {
            _iterator.f();
          }
        }
  
        var oldRemainingCasts = -1;
        var remainingCasts = Math.ceil((ensureTurns - (0, _kolmafia.haveEffect)(effect)) / (0, _kolmafia.turnsPerCast)(this.skill));
  
        while (remainingCasts > 0 && oldRemainingCasts !== remainingCasts) {
          var maxCasts = void 0;
  
          if ((0, _kolmafia.hpCost)(this.skill) > 0) {
            // FIXME: restore HP
            maxCasts = Math.floor((0, _kolmafia.myHp)() / (0, _kolmafia.hpCost)(this.skill));
          } else {
            var cost = (0, _kolmafia.mpCost)(this.skill);
            maxCasts = Math.floor((0, _kolmafia.myMp)() / cost);
  
            if (maxCasts === 0) {
              mood.moreMp(cost);
              maxCasts = Math.floor((0, _kolmafia.myMp)() / cost);
            }
          }
  
          var casts = (0, _utils.clamp)(remainingCasts, 0, Math.min(100, maxCasts));
          (0, _kolmafia.useSkill)(casts, this.skill);
          oldRemainingCasts = remainingCasts;
          remainingCasts = Math.ceil((ensureTurns - (0, _kolmafia.haveEffect)(effect)) / (0, _kolmafia.turnsPerCast)(this.skill));
        }
  
        return (0, _kolmafia.haveEffect)(effect) > ensureTurns;
      }
    }]);
  
    return SkillMoodElement;
  }(MoodElement);
  
  var PotionMoodElement = /*#__PURE__*/function (_MoodElement2) {
    _inherits(PotionMoodElement, _MoodElement2);
  
    var _super4 = _createSuper(PotionMoodElement);
  
    function PotionMoodElement(potion, maxPricePerTurn) {
      var _this2;
  
      _classCallCheck(this, PotionMoodElement);
  
      _this2 = _super4.call(this);
  
      _defineProperty(_assertThisInitialized(_this2), "potion", void 0);
  
      _defineProperty(_assertThisInitialized(_this2), "maxPricePerTurn", void 0);
  
      _this2.potion = potion;
      _this2.maxPricePerTurn = maxPricePerTurn;
      return _this2;
    }
  
    _createClass(PotionMoodElement, [{
      key: "execute",
      value: function execute(mood, ensureTurns) {
        // FIXME: Smarter buying logic.
        // FIXME: Allow constructing stuff (e.g. snow cleats)
        var effect = (0, _kolmafia.effectModifier)(this.potion, "Effect");
        var effectTurns = (0, _kolmafia.haveEffect)(effect);
        var turnsPerUse = (0, _kolmafia.numericModifier)(this.potion, "Effect Duration");
  
        if ((0, _kolmafia.mallPrice)(this.potion) > this.maxPricePerTurn * turnsPerUse) {
          return false;
        }
  
        if (effectTurns < ensureTurns) {
          var uses = (ensureTurns - effectTurns) / turnsPerUse;
          var quantityToBuy = (0, _utils.clamp)(uses - (0, _kolmafia.availableAmount)(this.potion), 0, 100);
          (0, _kolmafia.buy)(quantityToBuy, this.potion, this.maxPricePerTurn * turnsPerUse);
          var quantityToUse = (0, _utils.clamp)(uses, 0, (0, _kolmafia.availableAmount)(this.potion));
          (0, _kolmafia.use)(quantityToUse, this.potion);
        }
  
        return (0, _kolmafia.haveEffect)(effect) >= ensureTurns;
      }
    }]);
  
    return PotionMoodElement;
  }(MoodElement);
  
  var GenieMoodElement = /*#__PURE__*/function (_MoodElement3) {
    _inherits(GenieMoodElement, _MoodElement3);
  
    var _super5 = _createSuper(GenieMoodElement);
  
    function GenieMoodElement(effect) {
      var _this3;
  
      _classCallCheck(this, GenieMoodElement);
  
      _this3 = _super5.call(this);
  
      _defineProperty(_assertThisInitialized(_this3), "effect", void 0);
  
      _this3.effect = effect;
      return _this3;
    }
  
    _createClass(GenieMoodElement, [{
      key: "execute",
      value: function execute(mood, ensureTurns) {
        if ((0, _kolmafia.haveEffect)(this.effect) >= ensureTurns) return true;
        var neededWishes = Math.ceil(((0, _kolmafia.haveEffect)(this.effect) - ensureTurns) / 20);
        var wishesToBuy = (0, _utils.clamp)(neededWishes - (0, _kolmafia.availableAmount)((0, _templateString.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["pocket wish"])))), 0, 20);
        (0, _kolmafia.buy)(wishesToBuy, (0, _templateString.$item)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["pocket wish"]))), 50000);
        var wishesToUse = (0, _utils.clamp)(neededWishes, 0, (0, _kolmafia.availableAmount)((0, _templateString.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["pocket wish"])))));
  
        for (; wishesToUse > 0; wishesToUse--) {
          (0, _kolmafia.cliExecute)("genie effect ".concat(this.effect.name));
        }
  
        return (0, _kolmafia.haveEffect)(this.effect) >= ensureTurns;
      }
    }]);
  
    return GenieMoodElement;
  }(MoodElement);
  
  var CustomMoodElement = /*#__PURE__*/function (_MoodElement4) {
    _inherits(CustomMoodElement, _MoodElement4);
  
    var _super6 = _createSuper(CustomMoodElement);
  
    function CustomMoodElement(effect, gainEffect) {
      var _this4;
  
      _classCallCheck(this, CustomMoodElement);
  
      _this4 = _super6.call(this);
  
      _defineProperty(_assertThisInitialized(_this4), "effect", void 0);
  
      _defineProperty(_assertThisInitialized(_this4), "gainEffect", void 0);
  
      _this4.effect = effect;
      _this4.gainEffect = gainEffect !== null && gainEffect !== void 0 ? gainEffect : function () {
        return (0, _kolmafia.cliExecute)(effect["default"]);
      };
      return _this4;
    }
  
    _createClass(CustomMoodElement, [{
      key: "execute",
      value: function execute(mood, ensureTurns) {
        var currentTurns = (0, _kolmafia.haveEffect)(this.effect);
        var lastCurrentTurns = -1;
  
        while (currentTurns < ensureTurns && currentTurns !== lastCurrentTurns) {
          this.gainEffect();
          lastCurrentTurns = currentTurns;
          currentTurns = (0, _kolmafia.haveEffect)(this.effect);
        }
  
        return (0, _kolmafia.haveEffect)(this.effect) > ensureTurns;
      }
    }]);
  
    return CustomMoodElement;
  }(MoodElement);
  /**
   * Class representing a mood object. Add mood elements using the instance methods, which can be chained.
   */
  
  
  var Mood = /*#__PURE__*/function () {
    /**
     * Construct a new Mood instance.
     * @param options Options for mood.
     */
    function Mood() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
      _classCallCheck(this, Mood);
  
      _defineProperty(this, "options", void 0);
  
      _defineProperty(this, "elements", []);
  
      this.options = _objectSpread(_objectSpread({}, Mood.defaultOptions), options);
    }
    /**
     * Get the MP available for casting skills.
     */
  
  
    _createClass(Mood, [{
      key: "availableMp",
      value: function availableMp() {
        return this.options.mpSources.map(function (mpSource) {
          return mpSource.availableMpMin();
        }).reduce(function (x, y) {
          return x + y;
        }, 0);
      }
    }, {
      key: "moreMp",
      value: function moreMp(minimumTarget) {
        var _iterator2 = _createForOfIteratorHelper(this.options.mpSources),
            _step2;
  
        try {
          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
            var mpSource = _step2.value;
            var usesRemaining = mpSource.usesRemaining();
  
            if (usesRemaining !== null && usesRemaining > 0) {
              mpSource.execute();
              if ((0, _kolmafia.myMp)() >= minimumTarget) break;
            }
          }
        } catch (err) {
          _iterator2.e(err);
        } finally {
          _iterator2.f();
        }
      }
      /**
       * Add a skill to the mood.
       * @param skill Skill to add.
       */
  
    }, {
      key: "skill",
      value: function skill(_skill) {
        this.elements.push(new SkillMoodElement(_skill));
        return this;
      }
      /**
       * Add an effect to the mood, with casting based on {effect.default}.
       * @param effect Effect to add.
       * @param gainEffect How to gain the effect. Only runs if we don't have the effect.
       */
  
    }, {
      key: "effect",
      value: function effect(_effect, gainEffect) {
        var skill = (0, _kolmafia.toSkill)(_effect);
  
        if (!gainEffect && skill !== (0, _templateString.$skill)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["none"])))) {
          this.skill(skill);
        } else {
          this.elements.push(new CustomMoodElement(_effect, gainEffect));
        }
  
        return this;
      }
      /**
       * Add a potion to the mood.
       * @param potion Potion to add.
       * @param maxPricePerTurn Maximum price to pay per turn of the effect.
       */
  
    }, {
      key: "potion",
      value: function potion(_potion, maxPricePerTurn) {
        this.elements.push(new PotionMoodElement(_potion, maxPricePerTurn));
        return this;
      }
      /**
       * Add an effect to acquire via pocket wishes to the mood.
       * @param effect Effect to wish for in the mood.
       */
  
    }, {
      key: "genie",
      value: function genie(effect) {
        this.elements.push(new GenieMoodElement(effect));
        return this;
      }
      /**
       * Execute the mood, trying to ensure {ensureTurns} of each effect.
       * @param ensureTurns Turns of each effect to try and achieve.
       * @returns Whether or not we successfully got this many turns of every effect in the mood.
       */
  
    }, {
      key: "execute",
      value: function execute() {
        var ensureTurns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
        var availableMp = this.availableMp();
        var totalMpPerTurn = this.elements.map(function (element) {
          return element.mpCostPerTurn();
        }).reduce(function (x, y) {
          return x + y;
        }, 0);
        var potentialTurns = Math.floor(availableMp / totalMpPerTurn);
        var completeSuccess = true;
  
        var _iterator3 = _createForOfIteratorHelper(this.elements),
            _step3;
  
        try {
          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
            var element = _step3.value;
            var elementTurns = ensureTurns;
  
            if (element.mpCostPerTurn() > 0) {
              var elementPotentialTurns = Math.floor(potentialTurns / element.turnIncrement()) * element.turnIncrement();
              elementTurns = Math.min(ensureTurns, elementPotentialTurns);
            }
  
            completeSuccess = element.execute(this, elementTurns) || completeSuccess;
          }
        } catch (err) {
          _iterator3.e(err);
        } finally {
          _iterator3.f();
        }
  
        return completeSuccess;
      }
    }], [{
      key: "setDefaultOptions",
      value:
      /**
       * Set default options for new Mood instances.
       * @param options Default options for new Mood instances.
       */
      function setDefaultOptions(options) {
        Mood.defaultOptions = _objectSpread(_objectSpread({}, Mood.defaultOptions), options);
      }
    }]);
  
    return Mood;
  }();
  
  exports.Mood = Mood;
  
  _defineProperty(Mood, "defaultOptions", {
    songSlots: [],
    mpSources: [MagicalSausages.instance, OscusSoda.instance]
  });
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/property.js":
  /*!**********************************************!*\
    !*** ./node_modules/libram/dist/property.js ***!
    \**********************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.get = get;
  exports.set = _set;
  exports.setProperties = setProperties;
  exports.withProperties = withProperties;
  exports.withProperty = withProperty;
  exports.withChoices = withChoices;
  exports.withChoice = withChoice;
  exports.PropertiesManager = exports.getThrall = exports.getStat = exports.getSlot = exports.getSkill = exports.getServant = exports.getPhylum = exports.getMonster = exports.getLocation = exports.getItem = exports.getFamiliar = exports.getElement = exports.getEffect = exports.getCoinmaster = exports.getClass = exports.getBounty = exports.getNumber = exports.getBoolean = exports.getCommaSeparated = exports.getString = void 0;
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.object.entries.js */ "./node_modules/core-js/modules/es.object.entries.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.from-entries.js */ "./node_modules/core-js/modules/es.object.from-entries.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _propertyTyping = __webpack_require__(/*! ./propertyTyping */ "./node_modules/libram/dist/propertyTyping.js");
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
  
    return obj;
  }
  
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _iterableToArrayLimit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
  
    var _s, _e;
  
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  var createPropertyGetter = function createPropertyGetter(transform) {
    return function (property, default_) {
      var value = (0, _kolmafia.getProperty)(property);
  
      if (default_ !== undefined && value === "") {
        return default_;
      }
  
      return transform(value, property);
    };
  };
  
  var createMafiaClassPropertyGetter = function createMafiaClassPropertyGetter(Type) {
    return createPropertyGetter(function (value) {
      if (value === "") return null;
      var v = Type.get(value);
      return v === Type.get("none") ? null : v;
    });
  };
  
  var getString = createPropertyGetter(function (value) {
    return value;
  });
  exports.getString = getString;
  var getCommaSeparated = createPropertyGetter(function (value) {
    return value.split(/, ?/);
  });
  exports.getCommaSeparated = getCommaSeparated;
  var getBoolean = createPropertyGetter(function (value) {
    return value === "true";
  });
  exports.getBoolean = getBoolean;
  var getNumber = createPropertyGetter(function (value) {
    return Number(value);
  });
  exports.getNumber = getNumber;
  var getBounty = createMafiaClassPropertyGetter(Bounty);
  exports.getBounty = getBounty;
  var getClass = createMafiaClassPropertyGetter(Class);
  exports.getClass = getClass;
  var getCoinmaster = createMafiaClassPropertyGetter(Coinmaster);
  exports.getCoinmaster = getCoinmaster;
  var getEffect = createMafiaClassPropertyGetter(Effect);
  exports.getEffect = getEffect;
  var getElement = createMafiaClassPropertyGetter(Element);
  exports.getElement = getElement;
  var getFamiliar = createMafiaClassPropertyGetter(Familiar);
  exports.getFamiliar = getFamiliar;
  var getItem = createMafiaClassPropertyGetter(Item);
  exports.getItem = getItem;
  var getLocation = createMafiaClassPropertyGetter(Location);
  exports.getLocation = getLocation;
  var getMonster = createMafiaClassPropertyGetter(Monster);
  exports.getMonster = getMonster;
  var getPhylum = createMafiaClassPropertyGetter(Phylum);
  exports.getPhylum = getPhylum;
  var getServant = createMafiaClassPropertyGetter(Servant);
  exports.getServant = getServant;
  var getSkill = createMafiaClassPropertyGetter(Skill);
  exports.getSkill = getSkill;
  var getSlot = createMafiaClassPropertyGetter(Slot);
  exports.getSlot = getSlot;
  var getStat = createMafiaClassPropertyGetter(Stat);
  exports.getStat = getStat;
  var getThrall = createMafiaClassPropertyGetter(Thrall);
  /**
   * Returns the value of a mafia property, either built in or custom
   * @param property Name of the property
   * @param _default Default value for the property to take if not set
   */
  
  exports.getThrall = getThrall;
  
  function get(property, _default) {
    var value = getString(property);
  
    if ((0, _propertyTyping.isMonsterProperty)(property)) {
      return getMonster(property, _default);
    }
  
    if ((0, _propertyTyping.isLocationProperty)(property)) {
      return getLocation(property, _default);
    }
  
    if (value === "") {
      return _default === undefined ? "" : _default;
    }
  
    if ((0, _propertyTyping.isBooleanProperty)(property, value)) {
      return getBoolean(property, _default);
    }
  
    if ((0, _propertyTyping.isNumericProperty)(property, value)) {
      return getNumber(property, _default);
    }
  
    return value;
  }
  /**
   * Sets the value of a mafia property, either built in or custom
   * @param property Name of the property
   * @param value Value to give the property
   */
  
  
  function _set(property, value) {
    var stringValue = value === null ? "" : value.toString();
    (0, _kolmafia.setProperty)(property, stringValue);
  }
  
  function setProperties(properties) {
    for (var _i = 0, _Object$entries = Object.entries(properties); _i < _Object$entries.length; _i++) {
      var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
          prop = _Object$entries$_i[0],
          _value = _Object$entries$_i[1];
  
      _set(prop, _value);
    }
  }
  
  function withProperties(properties, callback) {
    var propertiesBackup = Object.fromEntries(Object.entries(properties).map(function (_ref) {
      var _ref2 = _slicedToArray(_ref, 1),
          prop = _ref2[0];
  
      return [prop, get(prop)];
    }));
    setProperties(properties);
  
    try {
      callback();
    } finally {
      setProperties(propertiesBackup);
    }
  }
  
  function withProperty(property, value, callback) {
    withProperties(_defineProperty({}, property, value), callback);
  }
  
  function withChoices(choices, callback) {
    var properties = Object.fromEntries(Object.entries(choices).map(function (_ref3) {
      var _ref4 = _slicedToArray(_ref3, 2),
          choice = _ref4[0],
          option = _ref4[1];
  
      return ["choiceAdventure".concat(choice), option];
    }));
    withProperties(properties, callback);
  }
  
  function withChoice(choice, value, callback) {
    withChoices(_defineProperty({}, choice, value), callback);
  }
  
  var PropertiesManager = /*#__PURE__*/function () {
    function PropertiesManager() {
      _classCallCheck(this, PropertiesManager);
  
      _defineProperty(this, "properties", void 0);
  
      this.properties = {};
    }
  
    _createClass(PropertiesManager, [{
      key: "set",
      value: function set(propertiesToSet) {
        for (var _i2 = 0, _Object$entries2 = Object.entries(propertiesToSet); _i2 < _Object$entries2.length; _i2++) {
          var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
              propertyName = _Object$entries2$_i[0],
              propertyValue = _Object$entries2$_i[1];
  
          if (this.properties[propertyName] === undefined) {
            this.properties[propertyName] = get(propertyName);
          }
  
          _set(propertyName, propertyValue);
        }
      }
    }, {
      key: "setChoices",
      value: function setChoices(choicesToSet) {
        this.set(Object.fromEntries(Object.entries(choicesToSet).map(function (_ref5) {
          var _ref6 = _slicedToArray(_ref5, 2),
              choiceNumber = _ref6[0],
              choiceValue = _ref6[1];
  
          return ["choiceAdventure".concat(choiceNumber), choiceValue];
        })));
      }
    }, {
      key: "resetAll",
      value: function resetAll() {
        Object.entries(this.properties).forEach(function (_ref7) {
          var _ref8 = _slicedToArray(_ref7, 2),
              propertyName = _ref8[0],
              propertyValue = _ref8[1];
  
          return _set(propertyName, propertyValue);
        });
      }
    }]);
  
    return PropertiesManager;
  }();
  
  exports.PropertiesManager = PropertiesManager;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/propertyTyping.js":
  /*!****************************************************!*\
    !*** ./node_modules/libram/dist/propertyTyping.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.isNumericProperty = isNumericProperty;
  exports.isNumericOrStringProperty = isNumericOrStringProperty;
  exports.isBooleanProperty = isBooleanProperty;
  exports.isLocationProperty = isLocationProperty;
  exports.isMonsterProperty = isMonsterProperty;
  exports.isFamiliarProperty = isFamiliarProperty;
  exports.isStatProperty = isStatProperty;
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.ends-with.js */ "./node_modules/core-js/modules/es.string.ends-with.js");
  
  function isNumericProperty(property, value) {
    return !isNaN(Number(value)) && !isNaN(parseFloat(value));
  }
  
  var choiceAdventurePattern = /^choiceAdventure\d+$/;
  
  function isNumericOrStringProperty(property) {
    return choiceAdventurePattern.test(property);
  }
  
  var fakeBooleans = ["trackVoteMonster", "_jickJarAvailable"];
  
  function isBooleanProperty(property, value) {
    if (fakeBooleans.includes(property)) return false;
    return ["true", "false"].includes(value);
  }
  
  var otherLocations = ["nextSpookyravenElizabethRoom", "nextSpookyravenStephenRoom", "sourceOracleTarget"];
  
  function isLocationProperty(property) {
    return otherLocations.includes(property) || property.endsWith("Location");
  }
  
  var otherMonsters = ["romanticTarget", "yearbookCameraTarget"];
  
  function isMonsterProperty(property) {
    if (otherMonsters.includes(property)) return true;
    return property.endsWith("Monster");
  }
  
  function isFamiliarProperty(property) {
    return property.endsWith("Familiar");
  }
  
  var statProps = ["nsChallenge1", "shrugTopper", "snojoSetting"];
  
  function isStatProperty(property) {
    return statProps.includes(property);
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2009/Bandersnatch.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2009/Bandersnatch.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.getRunaways = getRunaways;
  exports.getMaxRunaways = getMaxRunaways;
  exports.getRemainingRunaways = getRemainingRunaways;
  exports.couldRunaway = couldRunaway;
  exports.canRunaway = canRunaway;
  exports.prepareRunaway = prepareRunaway;
  exports.familiar = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _templateObject, _templateObject2, _templateObject3;
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e) {
            throw _e;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e2) {
        didErr = true;
        err = _e2;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var familiar = (0, _templateString.$familiar)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Frumious Bandersnatch"])));
  /**
   * Returns true if the player has the Frumious Bandersnatch in their
   * terrariukm
   */
  
  exports.familiar = familiar;
  
  function have() {
    return (0, _lib.have)(familiar);
  }
  /**
   * Returns the number of free runaways that have already been used
   * @see StompingBoots with which the Bandersnatch shares a counter
   */
  
  
  function getRunaways() {
    return (0, _property.get)("_banderRunaways");
  }
  /**
   * Returns the total number of free runaways that the player can
   * get from their Bandersnatch
   *
   * @param considerWeightAdjustment Include familiar weight modifiers
   */
  
  
  function getMaxRunaways() {
    var considerWeightAdjustment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
    var weightBuffs = considerWeightAdjustment ? (0, _kolmafia.weightAdjustment)() : 0;
    return Math.floor(((0, _kolmafia.familiarWeight)(familiar) + weightBuffs) / 5);
  }
  /**
   * Returns the number of remaining free runaways the player can
   * get from their Bandersnatch
   *
   * @param considerWeightAdjustment
   */
  
  
  function getRemainingRunaways() {
    var considerWeightAdjustment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
    return Math.max(0, getMaxRunaways(considerWeightAdjustment) - getRunaways());
  }
  /**
   * Returns true if the player could use their Bandersnatch to
   * get a free run in theory
   *
   * @param considerWeightAdjustment Include familiar weight modifiers
   */
  
  
  function couldRunaway() {
    var considerWeightAdjustment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
    return have() && getRemainingRunaways(considerWeightAdjustment) > 0;
  }
  
  var odeSkill = (0, _templateString.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["The Ode to Booze"])));
  var odeEffect = (0, _templateString.$effect)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Ode to Booze"])));
  /**
   * Returns true if the player can use their Bandersnatch to get a
   * free run right now
   */
  
  function canRunaway() {
    return (0, _lib.isCurrentFamiliar)(familiar) && couldRunaway() && (0, _lib.have)(odeEffect);
  }
  /**
   * Prepare a Bandersnatch runaway.
   *
   * This will cast Ode to Booze and equip take your Bandersnatch with you.
   * If any of those steps fail, it will return false.
   *
   * @param songsToRemove Ordered list of songs that could be shrugged to make room for Ode to Booze
   */
  
  
  function prepareRunaway(songsToRemove) {
    if (!(0, _lib.have)(odeEffect)) {
      if (!(0, _lib.have)(odeSkill)) {
        return false;
      }
  
      if (!(0, _lib.canRememberSong)()) {
        var activeSongs = (0, _lib.getActiveSongs)();
  
        var _iterator = _createForOfIteratorHelper(songsToRemove),
            _step;
  
        try {
          for (_iterator.s(); !(_step = _iterator.n()).done;) {
            var song = _step.value;
  
            if (activeSongs.includes(song) && (0, _lib.uneffect)(song)) {
              break;
            }
          }
        } catch (err) {
          _iterator.e(err);
        } finally {
          _iterator.f();
        }
      }
  
      if (!(0, _kolmafia.useSkill)(odeSkill)) {
        return false;
      }
    }
  
    return (0, _kolmafia.useFamiliar)(familiar);
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2009/SpookyPutty.js":
  /*!****************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2009/SpookyPutty.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.getSpookyPuttySheetCopiesMade = getSpookyPuttySheetCopiesMade;
  exports.prepareSpookyPuttySheet = prepareSpookyPuttySheet;
  exports.getSpookyPuttySheetMonster = getSpookyPuttySheetMonster;
  exports.useSpookyPuttySheet = useSpookyPuttySheet;
  exports.sheet = void 0;
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var sheet = (0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Spooky Putty sheet"])));
  exports.sheet = sheet;
  
  function have() {
    return (0, _lib.getFoldGroup)(sheet).some(function (item) {
      return (0, _lib.have)(item);
    });
  }
  
  function getSpookyPuttySheetCopiesMade() {
    return Math.max(0, (0, _property.get)("spookyPuttyCopiesMade"));
  }
  
  function prepareSpookyPuttySheet() {
    if (!have()) return false;
    if ((0, _lib.have)(sheet)) return true;
    return (0, _kolmafia.cliExecute)("fold Spooky putty sheet");
  }
  
  function getSpookyPuttySheetMonster() {
    return (0, _property.get)("spookyPuttyMonster");
  }
  
  function useSpookyPuttySheet() {
    return (0, _kolmafia.use)(sheet);
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2011/ObtuseAngel.js":
  /*!****************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2011/ObtuseAngel.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.getBadlyRomanticArrowUses = getBadlyRomanticArrowUses;
  exports.haveBadlyRomanticArrowUsesRemaining = haveBadlyRomanticArrowUsesRemaining;
  exports.couldUseBadlyRomanticArrow = couldUseBadlyRomanticArrow;
  exports.prepareBadlyRomanticArrow = prepareBadlyRomanticArrow;
  exports.canUseBadlyRomanticArrow = canUseBadlyRomanticArrow;
  exports.getBadlyRomanticArrowMonster = getBadlyRomanticArrowMonster;
  exports.BadlyRomanticArrow = exports.familiar = void 0;
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _Copier = __webpack_require__(/*! ../../Copier */ "./node_modules/libram/dist/Copier.js");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var familiar = (0, _templateString.$familiar)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Obtuse Angel"])));
  /**
   * Returns true if the player has an Obtuse Angel
   */
  
  exports.familiar = familiar;
  
  function have() {
    return (0, _lib.have)(familiar);
  }
  /**
   * Returns number of badly romantic arrows used
   */
  
  
  function getBadlyRomanticArrowUses() {
    return Math.max(0, (0, _property.get)("_badlyRomanticArrows"));
  }
  /**
   * Returns true if badly romantic arrow can still be used
   */
  
  
  function haveBadlyRomanticArrowUsesRemaining() {
    return getBadlyRomanticArrowUses() === 0;
  }
  /**
   * Returns true if the player could use badly romantic arrow in theory
   */
  
  
  function couldUseBadlyRomanticArrow() {
    return have() && haveBadlyRomanticArrowUsesRemaining();
  }
  /**
   * Prepares badly romantic arrow for use
   */
  
  
  function prepareBadlyRomanticArrow() {
    return (0, _kolmafia.useFamiliar)(familiar);
  }
  /**
   * Returns true if the player can use badly romantic arrow right now
   */
  
  
  function canUseBadlyRomanticArrow() {
    return (0, _lib.isCurrentFamiliar)(familiar) && haveBadlyRomanticArrowUsesRemaining();
  }
  /**
   * Returns the current badly romantic arrow monster target
   */
  
  
  function getBadlyRomanticArrowMonster() {
    return (0, _property.get)("romanticTarget");
  }
  
  var BadlyRomanticArrow = new _Copier.Copier(function () {
    return couldUseBadlyRomanticArrow();
  }, function () {
    return prepareBadlyRomanticArrow();
  }, function () {
    return canUseBadlyRomanticArrow();
  }, function () {
    return getBadlyRomanticArrowMonster();
  });
  exports.BadlyRomanticArrow = BadlyRomanticArrow;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2012/RainDoh.js":
  /*!************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2012/RainDoh.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.getRainDohBlackBoxCopiesMade = getRainDohBlackBoxCopiesMade;
  exports.getRainDohBlackBoxMonster = getRainDohBlackBoxMonster;
  exports.useRainDohBlackBox = useRainDohBlackBox;
  exports.box = void 0;
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var box = (0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Rain-Doh black box"])));
  exports.box = box;
  
  function have() {
    return (0, _lib.getFoldGroup)(box).some(function (item) {
      return (0, _lib.have)(item);
    });
  }
  
  function getRainDohBlackBoxCopiesMade() {
    return Math.max(0, (0, _property.get)("_raindohCopiesMade"));
  }
  
  function getRainDohBlackBoxMonster() {
    return (0, _property.get)("rainDohMonster");
  }
  
  function useRainDohBlackBox() {
    return (0, _kolmafia.use)(box);
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2014/WinterGarden.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2014/WinterGarden.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.haveUnfinishedIceSculpture = haveUnfinishedIceSculpture;
  exports.isUnfinishedIceSculptureUsed = isUnfinishedIceSculptureUsed;
  exports.couldUseUnfinishedIceSculpture = couldUseUnfinishedIceSculpture;
  exports.getUnfinishedIceSculptureMonster = getUnfinishedIceSculptureMonster;
  exports.UnfinishedIceSculpture = void 0;
  
  var _Copier = __webpack_require__(/*! ../../Copier */ "./node_modules/libram/dist/Copier.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  function have() {
    return (0, _lib.haveInCampground)((0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["packet of winter seeds"]))));
  }
  
  function haveUnfinishedIceSculpture() {
    return (0, _lib.have)((0, _templateString.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["unfinished ice sculpture"]))));
  }
  
  function isUnfinishedIceSculptureUsed() {
    return (0, _property.get)("_iceSculptureUsed");
  }
  
  function couldUseUnfinishedIceSculpture() {
    return (0, _lib.have)((0, _templateString.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["unfinished ice sculpture"])))) && !(0, _lib.have)((0, _templateString.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["ice sculpture"]))));
  }
  
  function getUnfinishedIceSculptureMonster() {
    return (0, _property.get)("iceSculptureMonster");
  }
  
  var UnfinishedIceSculpture = new _Copier.Copier(function () {
    return couldUseUnfinishedIceSculpture();
  }, null, function () {
    return couldUseUnfinishedIceSculpture();
  }, function () {
    return getUnfinishedIceSculptureMonster();
  });
  exports.UnfinishedIceSculpture = UnfinishedIceSculpture;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2015/ChateauMantegna.js":
  /*!********************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2015/ChateauMantegna.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.paintingMonster = paintingMonster;
  exports.paintingFought = paintingFought;
  exports.fightPainting = fightPainting;
  exports.getDesk = getDesk;
  exports.getCeiling = getCeiling;
  exports.getNightstand = getNightstand;
  exports.changeDesk = changeDesk;
  exports.changeCeiling = changeCeiling;
  exports.changeNightstand = changeNightstand;
  
  __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  function have() {
    return (0, _property.get)("chateauAvailable");
  }
  
  function paintingMonster() {
    return (0, _property.get)("chateauMonster");
  }
  
  function paintingFought() {
    return (0, _property.get)("_chateauMonsterFought");
  }
  
  function fightPainting() {
    (0, _kolmafia.visitUrl)("place.php?whichplace=chateau&action=chateau_painting", false);
    return (0, _kolmafia.runCombat)();
  }
  
  var desks = (0, _templateString.$items)(_templateObject || (_templateObject = _taggedTemplateLiteral(["fancy stationery set, Swiss piggy bank, continental juice bar"])));
  var ceilings = (0, _templateString.$items)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["antler chandelier, ceiling fan, artificial skylight"])));
  var nightstands = (0, _templateString.$items)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["foreign language tapes, bowl of potpourri, electric muscle stimulator"])));
  
  function getDesk() {
    return desks.find(function (desk) {
      return Object.keys((0, _kolmafia.getChateau)()).includes(desk.name);
    }) || (0, _templateString.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["none"])));
  }
  
  function getCeiling() {
    return ceilings.find(function (ceiling) {
      return Object.keys((0, _kolmafia.getChateau)()).includes(ceiling.name);
    }) || (0, _templateString.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["none"])));
  }
  
  function getNightstand() {
    return nightstands.find(function (nightstand) {
      return Object.keys((0, _kolmafia.getChateau)()).includes(nightstand.name);
    }) || (0, _templateString.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["none"])));
  }
  
  function changeDesk(desk) {
    if (getDesk() === desk) return true;
    if (!desks.includes(desk)) return false;
    (0, _kolmafia.buy)(desk);
    return getDesk() === desk;
  }
  
  function changeCeiling(ceiling) {
    if (getCeiling() === ceiling) return true;
    if (!ceilings.includes(ceiling)) return false;
    (0, _kolmafia.buy)(ceiling);
    return getCeiling() === ceiling;
  }
  
  function changeNightstand(nightstand) {
    if (getNightstand() === nightstand) return true;
    if (!nightstands.includes(nightstand)) return false;
    (0, _kolmafia.buy)(nightstand);
    return getNightstand() === nightstand;
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2016/SourceTerminal.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2016/SourceTerminal.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.enhance = enhance;
  exports.enquiry = enquiry;
  exports.educate = educate;
  exports.getSkills = getSkills;
  exports.isCurrentSkill = isCurrentSkill;
  exports.extrude = extrude;
  exports.getChips = getChips;
  exports.getDigitizeUses = getDigitizeUses;
  exports.getDigitizeMonster = getDigitizeMonster;
  exports.getDigitizeMonsterCount = getDigitizeMonsterCount;
  exports.getMaximumDigitizeUses = getMaximumDigitizeUses;
  exports.getDigitizeUsesRemaining = getDigitizeUsesRemaining;
  exports.couldDigitize = couldDigitize;
  exports.prepareDigitize = prepareDigitize;
  exports.canDigitize = canDigitize;
  exports.getDuplicateUses = getDuplicateUses;
  exports.getEnhanceUses = getEnhanceUses;
  exports.getPortscanUses = getPortscanUses;
  exports.Digitize = exports.Items = exports.Skills = exports.RolloverBuffs = exports.Buffs = exports.item = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.object.values.js */ "./node_modules/core-js/modules/es.object.values.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _isEqual = _interopRequireDefault(__webpack_require__(/*! lodash/isEqual */ "./node_modules/lodash/isEqual.js"));
  
  var _Copier = __webpack_require__(/*! ../../Copier */ "./node_modules/libram/dist/Copier.js");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27;
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      "default": obj
    };
  }
  
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
  
        var F = function F() {};
  
        return {
          s: F,
          n: function n() {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function e(_e) {
            throw _e;
          },
          f: F
        };
      }
  
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
  
    var normalCompletion = true,
        didErr = false,
        err;
    return {
      s: function s() {
        it = it.call(o);
      },
      n: function n() {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function e(_e2) {
        didErr = true;
        err = _e2;
      },
      f: function f() {
        try {
          if (!normalCompletion && it["return"] != null) it["return"]();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var item = (0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Source terminal"])));
  exports.item = item;
  
  function have() {
    return (0, _lib.haveInCampground)(item);
  }
  /**
   * Buffs that can be acquired from Enhance
   *
   * - Items: +30% Item Drop
   * - Meat: +60% Meat Drop
   * - Init: +50% Initiative
   * - Critical: +10% chance of Critical Hit, +10% chance of Spell Critical Hit
   * - Damage: +5 Prismatic Damage
   * - Substats: +3 Stats Per Fight
   */
  
  
  var Buffs = {
    Items: (0, _templateString.$effect)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["items.enh"]))),
    Meat: (0, _templateString.$effect)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["meat.enh"]))),
    Init: (0, _templateString.$effect)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["init.enh"]))),
    Critical: (0, _templateString.$effect)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["critical.enh"]))),
    Damage: (0, _templateString.$effect)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["damage.enh"]))),
    Substats: (0, _templateString.$effect)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["substats.enh"])))
  };
  /**
   * Acquire a buff from the Source Terminal
   * @param buff The buff to acquire
   * @see Buffs
   */
  
  exports.Buffs = Buffs;
  
  function enhance(buff) {
    if (!Object.values(Buffs).includes(buff)) {
      return false;
    }
  
    return (0, _kolmafia.cliExecute)("terminal enhance ".concat(buff.name));
  }
  /**
   * Rollover buffs that can be acquired from Enquiry
   */
  
  
  var RolloverBuffs = {
    /** +5 Familiar Weight */
    Familiar: (0, _templateString.$effect)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["familiar.enq"]))),
  
    /** +25 ML */
    Monsters: (0, _templateString.$effect)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["monsters.enq"]))),
  
    /** +5 Prismatic Resistance */
    Protect: (0, _templateString.$effect)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["protect.enq"]))),
  
    /** +100% Muscle, +100% Mysticality, +100% Moxie */
    Stats: (0, _templateString.$effect)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["stats.enq"])))
  };
  /**
   * Acquire a buff from the Source Terminal
   * @param buff The buff to acquire
   * @see RolloverBuffs
   */
  
  exports.RolloverBuffs = RolloverBuffs;
  
  function enquiry(rolloverBuff) {
    if (!Object.values(RolloverBuffs).includes(rolloverBuff)) {
      return false;
    }
  
    return (0, _kolmafia.cliExecute)("terminal enquiry ".concat(rolloverBuff.name));
  }
  /**
   * Skills that can be acquired from Enhance
   */
  
  
  var Skills = {
    /** Collect Source essence from enemies once per combat */
    Extract: (0, _templateString.$skill)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Extract"]))),
  
    /** Stagger and create a wandering monster 1-3 times per day */
    Digitize: (0, _templateString.$skill)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Digitize"]))),
  
    /** Stagger and deal 25% of enemy HP in damage once per combat */
    Compress: (0, _templateString.$skill)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Compress"]))),
  
    /** Double monster's HP, attack, defence, attacks per round and item drops once per fight and once per day (five in The Source) */
    Duplicate: (0, _templateString.$skill)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Duplicate"]))),
  
    /** Causes government agent/Source Agent wanderer next turn once per combat and three times per day */
    Portscan: (0, _templateString.$skill)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Portscan"]))),
  
    /** Increase Max MP by 100% and recover 1000 MP once per combat with a 30 turn cooldown */
    Turbo: (0, _templateString.$skill)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Turbo"])))
  };
  /**
   * Make a skill available.
   * The Source Terminal can give the player access to two skills at any time
   * @param skill Skill to learn
   * @see Skills
   */
  
  exports.Skills = Skills;
  
  function educate(skills) {
    var skillsArray = Array.isArray(skills) ? skills.slice(0, 2) : [skills];
    if ((0, _isEqual["default"])(skillsArray, getSkills())) return true;
  
    var _iterator = _createForOfIteratorHelper(skillsArray),
        _step;
  
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var skill = _step.value;
        if (!Object.values(Skills).includes(skill)) return false;
        (0, _kolmafia.cliExecute)("terminal educate ".concat(skill.name.toLowerCase(), ".edu"));
      }
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
  
    return true;
  }
  /**
   * Return the Skills currently available from Source Terminal
   */
  
  
  function getSkills() {
    return ["sourceTerminalEducate1", "sourceTerminalEducate2"].map(function (p) {
      return (0, _property.get)(p);
    }).filter(function (s) {
      return s !== "";
    }).map(function (s) {
      return Skill.get(s.slice(0, -4));
    });
  }
  
  function isCurrentSkill(skills) {
    var currentSkills = getSkills();
    var skillsArray = Array.isArray(skills) ? skills.slice(0, 2) : [skills];
    return skillsArray.every(function (skill) {
      return currentSkills.includes(skill);
    });
  }
  /**
   * Items that can be generated by the Source Terminal
   */
  
  
  var Items = {
    /** 4 fullness EPIC food */
    BrowserCookie: (0, _templateString.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["browser cookie"]))),
  
    /** 4 potency EPIC booze */
    HackedGibson: (0, _templateString.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["hacked gibson"]))),
  
    /** +10% item drop, improved yield from extraction skill */
    Shades: (0, _templateString.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["Source shades"]))),
    GRAM: (0, _templateString.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["Source terminal GRAM chip"]))),
    PRAM: (0, _templateString.$item)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Source terminal PRAM chip"]))),
    SPAM: (0, _templateString.$item)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["Source terminal SPAM chip"]))),
    CRAM: (0, _templateString.$item)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Source terminal CRAM chip"]))),
    DRAM: (0, _templateString.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["Source terminal DRAM chip"]))),
  
    /** Increase maximum daily casts of Digitze by one, usable once per player */
    TRAM: (0, _templateString.$item)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Source terminal TRAM chip"]))),
    SoftwareBug: (0, _templateString.$item)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["software bug"])))
  };
  /**
   * Collect an item from the Source Terminal (up to three times a day)
   * @param item Item to collect
   * @see Items
   */
  
  exports.Items = Items;
  
  function extrude(item) {
    if (!Object.values(Items).includes(item)) {
      return false;
    }
  
    return (0, _kolmafia.cliExecute)("terminal extrude ".concat(item.name));
  }
  /**
   * Return chips currently installed to player's Source Terminal
   */
  
  
  function getChips() {
    return (0, _property.get)("sourceTerminalChips").split(",");
  }
  /**
   * Return number of times digitize was cast today
   */
  
  
  function getDigitizeUses() {
    return (0, _property.get)("_sourceTerminalDigitizeUses");
  }
  /**
   * Return Monster that is currently digitized, else null
   */
  
  
  function getDigitizeMonster() {
    return (0, _property.get)("_sourceTerminalDigitizeMonster");
  }
  /**
   * Return number of digitized monsters encountered since it was last cast
   */
  
  
  function getDigitizeMonsterCount() {
    return (0, _property.get)("_sourceTerminalDigitizeMonsterCount");
  }
  /**
   * Return maximum number of digitizes player can cast
   */
  
  
  function getMaximumDigitizeUses() {
    var chips = getChips();
    return 1 + (chips.includes("TRAM") ? 1 : 0) + (chips.includes("TRIGRAM") ? 1 : 0);
  }
  /**
   * Returns the current day's number of remaining digitize uses
   */
  
  
  function getDigitizeUsesRemaining() {
    return getMaximumDigitizeUses() - getDigitizeUses();
  }
  /**
   * Returns whether the player could theoretically cast Digitize
   */
  
  
  function couldDigitize() {
    return getDigitizeUses() < getMaximumDigitizeUses();
  }
  
  function prepareDigitize() {
    if (!isCurrentSkill(Skills.Digitize)) {
      return educate(Skills.Digitize);
    }
  
    return true;
  }
  /**
   * Returns whether the player can cast Digitize immediately
   * This only considers whether the player has learned the skill
   * and has sufficient daily casts remaining, not whether they have sufficient MP
   */
  
  
  function canDigitize() {
    return couldDigitize() && getSkills().includes(Skills.Digitize);
  }
  
  var Digitize = new _Copier.Copier(function () {
    return couldDigitize();
  }, function () {
    return prepareDigitize();
  }, function () {
    return canDigitize();
  }, function () {
    return getDigitizeMonster();
  });
  /**
   * Return number of times duplicate was cast today
   */
  
  exports.Digitize = Digitize;
  
  function getDuplicateUses() {
    return (0, _property.get)("_sourceTerminalDuplicateUses");
  }
  /**
   * Return number of times enhance was cast today
   */
  
  
  function getEnhanceUses() {
    return (0, _property.get)("_sourceTerminalEnhanceUses");
  }
  /**
   * Return number of times portscan was cast today
   */
  
  
  function getPortscanUses() {
    return (0, _property.get)("_sourceTerminalPortscanUses");
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2016/Witchess.js":
  /*!*************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2016/Witchess.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.fightsDone = fightsDone;
  exports.fightPiece = fightPiece;
  exports.pieces = exports.item = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var item = (0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Witchess Set"])));
  exports.item = item;
  
  function have() {
    return (0, _lib.haveInCampground)(item);
  }
  
  function fightsDone() {
    return (0, _property.get)("_witchessFights");
  }
  
  var pieces = Monster.get(["Witchess Pawn", "Witchess Knight", "Witchess Bishop", "Witchess Rook", "Witchess Queen", "Witchess King", "Witchess Witch", "Witchess Ox"]);
  exports.pieces = pieces;
  
  function fightPiece(piece) {
    if (!pieces.includes(piece)) throw new Error("That is not a valid piece.");
  
    if (!(0, _kolmafia.visitUrl)("campground.php?action=witchess").includes("whichchoice value=1181")) {
      throw new Error("Failed to open Witchess.");
    }
  
    if (!(0, _kolmafia.runChoice)(1).includes("whichchoice=1182")) {
      throw new Error("Failed to visit shrink ray.");
    }
  
    if (!(0, _kolmafia.visitUrl)("choice.php?option=1&pwd=".concat((0, _kolmafia.myHash)(), "&whichchoice=1182&piece=").concat((0, _kolmafia.toInt)(piece)), false).includes(piece.name)) {
      throw new Error("Failed to start fight.");
    }
  
    return (0, _kolmafia.runCombat)();
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2017/TunnelOfLove.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2017/TunnelOfLove.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.isUsed = isUsed;
  exports.haveLovEnamorang = haveLovEnamorang;
  exports.getLovEnamorangUses = getLovEnamorangUses;
  exports.couldUseLoveEnamorang = couldUseLoveEnamorang;
  exports.getLovEnamorangMonster = getLovEnamorangMonster;
  exports.fightAll = fightAll;
  exports.LovEnamorang = void 0;
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _Copier = __webpack_require__(/*! ../../Copier */ "./node_modules/libram/dist/Copier.js");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject, _templateObject2;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  function have() {
    return (0, _property.get)("loveTunnelAvailable");
  }
  
  function isUsed() {
    return (0, _property.get)("_loveTunnelUsed");
  }
  
  function haveLovEnamorang() {
    return (0, _lib.have)((0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["LOV Enamorang"]))));
  }
  
  function getLovEnamorangUses() {
    return (0, _property.get)("_enamorangs");
  }
  
  function couldUseLoveEnamorang() {
    return !(0, _lib.haveWandererCounter)(_lib.Wanderer.Enamorang) && getLovEnamorangUses() < 3 && haveLovEnamorang();
  }
  
  function getLovEnamorangMonster() {
    return (0, _property.get)("enamorangMonster");
  }
  
  var LovEnamorang = new _Copier.Copier(function () {
    return couldUseLoveEnamorang();
  }, null, function () {
    return couldUseLoveEnamorang();
  }, function () {
    return getLovEnamorangMonster();
  });
  exports.LovEnamorang = LovEnamorang;
  
  function equipmentChoice(equipment) {
    switch (equipment) {
      case "LOV Eardigan":
        return 1;
  
      case "LOV Epaulettes":
        return 2;
  
      case "LOV Earring":
        return 3;
    }
  }
  
  function effectChoice(effect) {
    switch (effect) {
      case "Lovebotamy":
        return 1;
  
      case "Open Heart Surgery":
        return 2;
  
      case "Wandering Eye Surgery":
        return 3;
    }
  }
  
  function extraChoice(extra) {
    switch (extra) {
      case "LOV Enamorang":
        return 1;
  
      case "LOV Emotionizer":
        return 2;
  
      case "LOV Extraterrestrial Chocolate":
        return 3;
  
      case "LOV Echinacea Bouquet":
        return 4;
  
      case "LOV Elephant":
        return 5;
  
      case "toast":
        return 6;
  
      case null:
        return 7;
    }
  }
  /**
   * Fight all LOV monsters and get buffs/equipment.
   * @param equipment Equipment to take from LOV.
   * @param effect Effect to take from LOV.
   * @param extra Extra item to take from LOV.
   */
  
  
  function fightAll(equipment, effect, extra) {
    (0, _property.set)("choiceAdventure1222", 1); // Entrance
  
    (0, _property.set)("choiceAdventure1223", 1); // Fight LOV Enforcer
  
    (0, _property.set)("choiceAdventure1224", equipmentChoice(equipment));
    (0, _property.set)("choiceAdventure1225", 1); // Fight LOV Engineer
  
    (0, _property.set)("choiceAdventure1226", effectChoice(effect));
    (0, _property.set)("choiceAdventure1227", 1); // Fight LOV Equivocator
  
    (0, _property.set)("choiceAdventure1228", extraChoice(extra));
    (0, _kolmafia.adv1)((0, _templateString.$location)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["The Tunnel of L.O.V.E."]))), 0, "");
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2018/SongBoom.js":
  /*!*************************************************************!*\
    !*** ./node_modules/libram/dist/resources/2018/SongBoom.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.song = song;
  exports.songChangesLeft = songChangesLeft;
  exports.setSong = setSong;
  exports.dropProgress = dropProgress;
  exports.songBoomSongs = exports.item = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var item = (0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["SongBoom\u2122 BoomBox"])));
  exports.item = item;
  
  function have() {
    return (0, _lib.have)(item);
  }
  
  var keywords = {
    "Eye of the Giger": "spooky",
    "Food Vibrations": "food",
    "Remainin' Alive": "dr",
    "These Fists Were Made for Punchin'": "damage",
    "Total Eclipse of Your Meat": "meat"
  };
  var songBoomSongs = new Set(Object.keys(keywords));
  /**
   * Current song.
   */
  
  exports.songBoomSongs = songBoomSongs;
  
  function song() {
    var stored = (0, _property.get)("boomBoxSong");
    return songBoomSongs.has(stored) ? stored : null;
  }
  /**
   * Song changes left today.
   */
  
  
  function songChangesLeft() {
    return (0, _property.get)("_boomBoxSongsLeft");
  }
  /**
   * Change the song.
   * @param newSong Song to change to.
   */
  
  
  function setSong(newSong) {
    if (song() !== newSong) {
      if (songChangesLeft() === 0) throw new Error("Out of song changes!");
      (0, _kolmafia.cliExecute)("boombox ".concat(newSong ? keywords[newSong] : "none"));
      return true;
    } else {
      return false;
    }
  }
  /**
   * Progress to next song drop (e.g. gathered meat-clip).
   */
  
  
  function dropProgress() {
    return (0, _property.get)("_boomBoxFights");
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/2020/Guzzlr.js":
  /*!***********************************************************!*\
    !*** ./node_modules/libram/dist/resources/2020/Guzzlr.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.have = have;
  exports.isQuestActive = isQuestActive;
  exports.getPlatinum = getPlatinum;
  exports.getPlatinumToday = getPlatinumToday;
  exports.canPlatinum = canPlatinum;
  exports.haveFullPlatinumBonus = haveFullPlatinumBonus;
  exports.acceptPlatinum = acceptPlatinum;
  exports.getGold = getGold;
  exports.getGoldToday = getGoldToday;
  exports.canGold = canGold;
  exports.haveFullGoldBonus = haveFullGoldBonus;
  exports.acceptGold = acceptGold;
  exports.getBronze = getBronze;
  exports.acceptBronze = acceptBronze;
  exports.haveFullBronzeBonus = haveFullBronzeBonus;
  exports.canAbandon = canAbandon;
  exports.abandon = abandon;
  exports.getLocation = getLocation;
  exports.getTier = getTier;
  exports.getBooze = getBooze;
  exports.havePlatinumBooze = havePlatinumBooze;
  exports.haveBooze = haveBooze;
  exports.Cocktails = exports.item = void 0;
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  var _lib = __webpack_require__(/*! ../../lib */ "./node_modules/libram/dist/lib.js");
  
  var _property = __webpack_require__(/*! ../../property */ "./node_modules/libram/dist/property.js");
  
  var _templateString = __webpack_require__(/*! ../../template-string */ "./node_modules/libram/dist/template-string.js");
  
  var _templateObject, _templateObject2, _templateObject3;
  
  function _taggedTemplateLiteral(strings, raw) {
    if (!raw) {
      raw = strings.slice(0);
    }
  
    return Object.freeze(Object.defineProperties(strings, {
      raw: {
        value: Object.freeze(raw)
      }
    }));
  }
  
  var item = (0, _templateString.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Guzzlr tablet"])));
  exports.item = item;
  
  function have() {
    return (0, _lib.have)(item);
  }
  
  function useTabletWithChoice(option) {
    (0, _property.withChoice)(1412, option, function () {
      return (0, _kolmafia.use)(1, item);
    });
  }
  
  function isQuestActive() {
    return (0, _property.get)("questGuzzlr") !== "unstarted";
  }
  /**
   * Platinum deliveries completed overall
   */
  
  
  function getPlatinum() {
    return (0, _property.get)("guzzlrPlatinumDeliveries");
  }
  /**
   * Platinum deliveries completed today
   */
  
  
  function getPlatinumToday() {
    return (0, _property.get)("_guzzlrPlatinumDeliveries");
  }
  /**
   * Can do a platinum delivery (haven't done one today)
   */
  
  
  function canPlatinum() {
    return !isQuestActive() && getGold() >= 5 && getPlatinumToday() < 1;
  }
  /**
   * Have fully unlocked the platinum delivery bonuses (done >= 30)
   */
  
  
  function haveFullPlatinumBonus() {
    return getPlatinum() >= 30;
  }
  /**
   * Accept platinum delivery
   */
  
  
  function acceptPlatinum() {
    if (!canPlatinum()) return false;
    useTabletWithChoice(4);
    return true;
  }
  /**
   * Gold deliveries completed overall
   */
  
  
  function getGold() {
    return (0, _property.get)("guzzlrGoldDeliveries");
  }
  /**
   * Gold deliveries completed today
   */
  
  
  function getGoldToday() {
    return (0, _property.get)("_guzzlrGoldDeliveries");
  }
  /**
   * Can do a gold delivery (have done fewer than 3 today)
   */
  
  
  function canGold() {
    return !isQuestActive() && getBronze() >= 5 && getGoldToday() < 3;
  }
  /**
   * Have fully unlocked the platinum delivery bonuses (done >= 30)
   */
  
  
  function haveFullGoldBonus() {
    return getGold() >= 150;
  }
  /**
   * Accept gold delivery
   */
  
  
  function acceptGold() {
    if (!canGold()) return false;
    useTabletWithChoice(3);
    return true;
  }
  /**
   * Bronze deliveries completed overall
   */
  
  
  function getBronze() {
    return (0, _property.get)("guzzlrBronzeDeliveries");
  }
  /**
   * Accept bronze delivery
   */
  
  
  function acceptBronze() {
    if (isQuestActive()) return false;
    useTabletWithChoice(2);
    return true;
  }
  /**
   * Have fully unlocked the platinum delivery bonuses (done >= 30)
   */
  
  
  function haveFullBronzeBonus() {
    return getBronze() >= 196;
  }
  /**
   * Can abandon the current Guzzlr quest
   */
  
  
  function canAbandon() {
    return isQuestActive() && !(0, _property.get)("_guzzlrQuestAbandoned");
  }
  /**
   * Abandon Guzzlr quest
   */
  
  
  function abandon() {
    if (!canAbandon()) return false;
    (0, _kolmafia.visitUrl)("inventory.php?tap=guzzlr", false);
    (0, _kolmafia.runChoice)(1);
    (0, _kolmafia.runChoice)(5);
    return true;
  }
  /**
   * Get current Guzzlr quest location
   */
  
  
  function getLocation() {
    return (0, _property.get)("guzzlrQuestLocation");
  }
  /**
   * Get current Guzzlr quest tier
   */
  
  
  function getTier() {
    var tier = (0, _property.get)("guzzlrQuestTier");
    return tier === "" ? null : tier;
  }
  /**
   * Get current Guzzlr quest booze
   */
  
  
  function getBooze() {
    var booze = (0, _property.get)("guzzlrQuestBooze");
    if (booze === "") return null;
    return Item.get(booze);
  }
  /**
   * List of the platinum cocktails
   */
  
  
  var Cocktails = (0, _templateString.$items)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Buttery Boy, Steamboat, Ghiaccio Colada, Nog-on-the-Cob, Sourfinger"])));
  /**
   * Returns true if the user has a platinum cocktail in their inventory
   */
  
  exports.Cocktails = Cocktails;
  
  function havePlatinumBooze() {
    return Cocktails.some(function (cock) {
      return (0, _lib.have)(cock);
    });
  }
  /**
   * Returns true if the user has the cocktail that they need for their current quest
   *
   * If they have no quest, returns false
   */
  
  
  function haveBooze() {
    var booze = getBooze();
  
    switch (booze) {
      case null:
        return false;
  
      case (0, _templateString.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Guzzlr cocktail set"]))):
        return havePlatinumBooze();
  
      default:
        return (0, _lib.have)(booze);
    }
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/index.js":
  /*!*****************************************************!*\
    !*** ./node_modules/libram/dist/resources/index.js ***!
    \*****************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  var _exportNames = {
    Bandersnatch: true,
    ChateauMantegna: true,
    ObtuseAngel: true,
    RainDoh: true,
    SongBoom: true,
    SourceTerminal: true,
    SpookyPutty: true,
    TunnelOfLove: true,
    WinterGarden: true,
    Witchess: true,
    Guzzlr: true
  };
  exports.Guzzlr = exports.Witchess = exports.WinterGarden = exports.TunnelOfLove = exports.SpookyPutty = exports.SourceTerminal = exports.SongBoom = exports.RainDoh = exports.ObtuseAngel = exports.ChateauMantegna = exports.Bandersnatch = void 0;
  
  var _Bandersnatch = _interopRequireWildcard(__webpack_require__(/*! ./2009/Bandersnatch */ "./node_modules/libram/dist/resources/2009/Bandersnatch.js"));
  
  exports.Bandersnatch = _Bandersnatch;
  
  var _ChateauMantegna = _interopRequireWildcard(__webpack_require__(/*! ./2015/ChateauMantegna */ "./node_modules/libram/dist/resources/2015/ChateauMantegna.js"));
  
  exports.ChateauMantegna = _ChateauMantegna;
  
  var _ObtuseAngel = _interopRequireWildcard(__webpack_require__(/*! ./2011/ObtuseAngel */ "./node_modules/libram/dist/resources/2011/ObtuseAngel.js"));
  
  exports.ObtuseAngel = _ObtuseAngel;
  
  var _RainDoh = _interopRequireWildcard(__webpack_require__(/*! ./2012/RainDoh */ "./node_modules/libram/dist/resources/2012/RainDoh.js"));
  
  exports.RainDoh = _RainDoh;
  
  var _SongBoom = _interopRequireWildcard(__webpack_require__(/*! ./2018/SongBoom */ "./node_modules/libram/dist/resources/2018/SongBoom.js"));
  
  exports.SongBoom = _SongBoom;
  
  var _SourceTerminal = _interopRequireWildcard(__webpack_require__(/*! ./2016/SourceTerminal */ "./node_modules/libram/dist/resources/2016/SourceTerminal.js"));
  
  exports.SourceTerminal = _SourceTerminal;
  
  var _SpookyPutty = _interopRequireWildcard(__webpack_require__(/*! ./2009/SpookyPutty */ "./node_modules/libram/dist/resources/2009/SpookyPutty.js"));
  
  exports.SpookyPutty = _SpookyPutty;
  
  var _TunnelOfLove = _interopRequireWildcard(__webpack_require__(/*! ./2017/TunnelOfLove */ "./node_modules/libram/dist/resources/2017/TunnelOfLove.js"));
  
  exports.TunnelOfLove = _TunnelOfLove;
  
  var _WinterGarden = _interopRequireWildcard(__webpack_require__(/*! ./2014/WinterGarden */ "./node_modules/libram/dist/resources/2014/WinterGarden.js"));
  
  exports.WinterGarden = _WinterGarden;
  
  var _Witchess = _interopRequireWildcard(__webpack_require__(/*! ./2016/Witchess */ "./node_modules/libram/dist/resources/2016/Witchess.js"));
  
  exports.Witchess = _Witchess;
  
  var _Guzzlr = _interopRequireWildcard(__webpack_require__(/*! ./2020/Guzzlr */ "./node_modules/libram/dist/resources/2020/Guzzlr.js"));
  
  exports.Guzzlr = _Guzzlr;
  
  var _puttyLikes = __webpack_require__(/*! ./putty-likes */ "./node_modules/libram/dist/resources/putty-likes.js");
  
  Object.keys(_puttyLikes).forEach(function (key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _puttyLikes[key]) return;
    Object.defineProperty(exports, key, {
      enumerable: true,
      get: function get() {
        return _puttyLikes[key];
      }
    });
  });
  
  function _getRequireWildcardCache(nodeInterop) {
    if (typeof WeakMap !== "function") return null;
    var cacheBabelInterop = new WeakMap();
    var cacheNodeInterop = new WeakMap();
    return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
      return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
    })(nodeInterop);
  }
  
  function _interopRequireWildcard(obj, nodeInterop) {
    if (!nodeInterop && obj && obj.__esModule) {
      return obj;
    }
  
    if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
      return {
        "default": obj
      };
    }
  
    var cache = _getRequireWildcardCache(nodeInterop);
  
    if (cache && cache.has(obj)) {
      return cache.get(obj);
    }
  
    var newObj = {};
    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
  
    for (var key in obj) {
      if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
        var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
  
        if (desc && (desc.get || desc.set)) {
          Object.defineProperty(newObj, key, desc);
        } else {
          newObj[key] = obj[key];
        }
      }
    }
  
    newObj["default"] = obj;
  
    if (cache) {
      cache.set(obj, newObj);
    }
  
    return newObj;
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/resources/putty-likes.js":
  /*!***********************************************************!*\
    !*** ./node_modules/libram/dist/resources/putty-likes.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.getTotalPuttyLikeCopiesMade = getTotalPuttyLikeCopiesMade;
  exports.couldUseRainDohBlackBox = couldUseRainDohBlackBox;
  exports.couldUseSpookyPuttySheet = couldUseSpookyPuttySheet;
  exports.SpookyPuttySheet = exports.RainDohBlackBox = void 0;
  
  var _Copier = __webpack_require__(/*! ../Copier */ "./node_modules/libram/dist/Copier.js");
  
  var _SpookyPutty = __webpack_require__(/*! ./2009/SpookyPutty */ "./node_modules/libram/dist/resources/2009/SpookyPutty.js");
  
  var _RainDoh = __webpack_require__(/*! ./2012/RainDoh */ "./node_modules/libram/dist/resources/2012/RainDoh.js");
  
  function getTotalPuttyLikeCopiesMade() {
    return (0, _SpookyPutty.getSpookyPuttySheetCopiesMade)() + (0, _RainDoh.getRainDohBlackBoxCopiesMade)();
  }
  
  function couldUseRainDohBlackBox() {
    return (0, _RainDoh.have)() && (0, _RainDoh.getRainDohBlackBoxCopiesMade)() < 5 && getTotalPuttyLikeCopiesMade() < 6;
  }
  
  var RainDohBlackBox = new _Copier.Copier(function () {
    return couldUseRainDohBlackBox();
  }, null, function () {
    return couldUseRainDohBlackBox();
  }, function () {
    return (0, _RainDoh.getRainDohBlackBoxMonster)();
  }, function () {
    return (0, _RainDoh.useRainDohBlackBox)();
  });
  exports.RainDohBlackBox = RainDohBlackBox;
  
  function couldUseSpookyPuttySheet() {
    return (0, _SpookyPutty.have)() && (0, _SpookyPutty.getSpookyPuttySheetCopiesMade)() < 5 && getTotalPuttyLikeCopiesMade() < 6;
  }
  
  var SpookyPuttySheet = new _Copier.Copier(function () {
    return couldUseSpookyPuttySheet();
  }, function () {
    return (0, _SpookyPutty.prepareSpookyPuttySheet)();
  }, function () {
    return couldUseSpookyPuttySheet();
  }, function () {
    return (0, _SpookyPutty.getSpookyPuttySheetMonster)();
  }, function () {
    return (0, _SpookyPutty.useSpookyPuttySheet)();
  });
  exports.SpookyPuttySheet = SpookyPuttySheet;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/since.js":
  /*!*******************************************!*\
    !*** ./node_modules/libram/dist/since.js ***!
    \*******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ "./node_modules/core-js/modules/es.reflect.construct.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.sinceKolmafiaRevision = sinceKolmafiaRevision;
  exports.sinceKolmafiaVersion = sinceKolmafiaVersion;
  exports.KolmafiaVersionError = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  var _kolmafia = __webpack_require__(/*! kolmafia */ "kolmafia");
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }
  
    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }
  
  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();
  
    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;
  
      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;
  
        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }
  
      return _possibleConstructorReturn(this, result);
    };
  }
  
  function _possibleConstructorReturn(self, call) {
    if (call && (_typeof(call) === "object" || typeof call === "function")) {
      return call;
    }
  
    return _assertThisInitialized(self);
  }
  
  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }
  
    return self;
  }
  
  function _wrapNativeSuper(Class) {
    var _cache = typeof Map === "function" ? new Map() : undefined;
  
    _wrapNativeSuper = function _wrapNativeSuper(Class) {
      if (Class === null || !_isNativeFunction(Class)) return Class;
  
      if (typeof Class !== "function") {
        throw new TypeError("Super expression must either be null or a function");
      }
  
      if (typeof _cache !== "undefined") {
        if (_cache.has(Class)) return _cache.get(Class);
  
        _cache.set(Class, Wrapper);
      }
  
      function Wrapper() {
        return _construct(Class, arguments, _getPrototypeOf(this).constructor);
      }
  
      Wrapper.prototype = Object.create(Class.prototype, {
        constructor: {
          value: Wrapper,
          enumerable: false,
          writable: true,
          configurable: true
        }
      });
      return _setPrototypeOf(Wrapper, Class);
    };
  
    return _wrapNativeSuper(Class);
  }
  
  function _construct(Parent, args, Class) {
    if (_isNativeReflectConstruct()) {
      _construct = Reflect.construct;
    } else {
      _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) _setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }
  
    return _construct.apply(null, arguments);
  }
  
  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;
  
    try {
      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }
  
  function _isNativeFunction(fn) {
    return Function.toString.call(fn).indexOf("[native code]") !== -1;
  }
  
  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };
  
    return _setPrototypeOf(o, p);
  }
  
  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }
  /**
   * Represents an exception thrown when the current KoLmafia version does not
   * match an expected condition.
   */
  
  
  var KolmafiaVersionError = /*#__PURE__*/function (_Error) {
    _inherits(KolmafiaVersionError, _Error);
  
    var _super = _createSuper(KolmafiaVersionError);
  
    function KolmafiaVersionError(message) {
      var _this;
  
      _classCallCheck(this, KolmafiaVersionError);
  
      _this = _super.call(this, message); // Explicitly set the prototype, so that 'instanceof' still works in Node.js
      // even when the class is transpiled down to ES5
      // See: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
      // Note that this code isn't needed for Rhino.
  
      Object.setPrototypeOf(_assertThisInitialized(_this), KolmafiaVersionError.prototype);
      return _this;
    }
  
    return KolmafiaVersionError;
  }( /*#__PURE__*/_wrapNativeSuper(Error)); // Manually set class name, so that the stack trace shows proper name in Rhino
  
  
  exports.KolmafiaVersionError = KolmafiaVersionError;
  KolmafiaVersionError.prototype.name = "KolmafiaVersionError";
  /**
   * Returns the currently executing script name, suitable for embedding in an
   * error message.
   * @returns Path of the main script wrapped in single-quotes, or `"This script"`
   *    if the path cannot be determined
   */
  
  function getScriptName() {
    var _require$main; // In Rhino, the current script name is available in require.main.id
  
  
    var scriptName = (_require$main = __webpack_require__.c[__webpack_require__.s]) === null || _require$main === void 0 ? void 0 : _require$main.id;
    return scriptName ? "'".concat(scriptName, "'") : "This script";
  }
  /**
   * If KoLmafia's revision number is less than `revision`, throws an exception.
   * Otherwise, does nothing.
   *
   * This behaves like the `since rXXX;` statement in ASH.
   * @param revision Revision number
   * @throws {KolmafiaVersionError}
   *    If KoLmafia's revision number is less than `revision`.
   * @throws {TypeError} If `revision` is not an integer
   *
   * @example
   * ```ts
   * // Throws if KoLmafia revision is less than r20500
   * sinceKolmafiaRevision(20500);
   * ```
   */
  
  
  function sinceKolmafiaRevision(revision) {
    if (!Number.isInteger(revision)) {
      throw new TypeError("Invalid revision number ".concat(revision, " (must be an integer)"));
    } // Based on net.sourceforge.kolmafia.textui.Parser.sinceException()
  
  
    if ((0, _kolmafia.getRevision)() < revision) {
      throw new KolmafiaVersionError("".concat(getScriptName(), " requires revision r").concat(revision, " of kolmafia or higher (current: ").concat((0, _kolmafia.getRevision)(), "). Up-to-date builds can be found at https://ci.kolmafia.us/."));
    }
  }
  /**
   * If KoLmafia's version is less than `majorVersion.minorVersion`, throws an
   * exception.
   * Otherwise, does nothing.
   *
   * This behaves like the `since X.Y;` statement in ASH.
   * @param majorVersion Major version number
   * @param minorVersion Minor version number
   * @throws {KolmafiaVersionError}
   *    If KoLmafia's major version is less than `majorVersion`, or if the major
   *    versions are equal but the minor version is less than `minorVersion`
   * @throws {TypeError}
   *    If either `majorVersion` or `minorVersion` are not integers
   *
   * @example
   * ```ts
   * // Throws if KoLmafia version is less than 20.7
   * sinceKolmafiaVersion(20, 7);
   * ```
   */
  
  
  function sinceKolmafiaVersion(majorVersion, minorVersion) {
    if (!Number.isInteger(majorVersion)) {
      throw new TypeError("Invalid major version number ".concat(majorVersion, " (must be an integer)"));
    }
  
    if (!Number.isInteger(minorVersion)) {
      throw new TypeError("Invalid minor version number ".concat(minorVersion, " (must be an integer)"));
    }
  
    var versionStr = (0, _kolmafia.getVersion)();
    var versionStrMatch = /v(\d+)\.(\d+)/.exec(versionStr);
  
    if (!versionStrMatch) {
      // This is not something the user should handle
      throw new Error("Unexpected KoLmafia version string: \"".concat(versionStr, "\". You may need to update the script."));
    }
  
    var currentMajorVersion = Number(versionStrMatch[1]);
    var currentMinorVersion = Number(versionStrMatch[2]); // Based on net.sourceforge.kolmafia.textui.Parser.sinceException()
  
    if (currentMajorVersion < majorVersion || currentMajorVersion === majorVersion && currentMinorVersion < minorVersion) {
      throw new KolmafiaVersionError("".concat(getScriptName(), " requires version ").concat(majorVersion, ".").concat(minorVersion, " of kolmafia or higher (current: ").concat(currentMajorVersion, ".").concat(currentMinorVersion, "). Up-to-date builds can be found at https://ci.kolmafia.us/."));
    }
  }
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/template-string.js":
  /*!*****************************************************!*\
    !*** ./node_modules/libram/dist/template-string.js ***!
    \*****************************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.$thralls = exports.$thrall = exports.$stats = exports.$stat = exports.$slots = exports.$slot = exports.$skills = exports.$skill = exports.$servants = exports.$servant = exports.$phyla = exports.$phylum = exports.$monsters = exports.$monster = exports.$locations = exports.$location = exports.$items = exports.$item = exports.$familiars = exports.$familiar = exports.$elements = exports.$element = exports.$effects = exports.$effect = exports.$coinmasters = exports.$coinmaster = exports.$classes = exports.$class = exports.$bounties = exports.$bounty = void 0;
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
  
  var concatTemplateString = function concatTemplateString(literals) {
    for (var _len = arguments.length, placeholders = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      placeholders[_key - 1] = arguments[_key];
    }
  
    return literals.reduce(function (acc, literal, i) {
      return acc + literal + (placeholders[i] || "");
    }, "");
  };
  
  var createSingleConstant = function createSingleConstant(Type) {
    return function (literals) {
      for (var _len2 = arguments.length, placeholders = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
        placeholders[_key2 - 1] = arguments[_key2];
      }
  
      var input = concatTemplateString.apply(void 0, [literals].concat(placeholders));
      return Type.get(input);
    };
  };
  
  var createPluralConstant = function createPluralConstant(Type) {
    return function (literals) {
      for (var _len3 = arguments.length, placeholders = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
        placeholders[_key3 - 1] = arguments[_key3];
      }
  
      var input = concatTemplateString.apply(void 0, [literals].concat(placeholders));
  
      if (input === "") {
        return Type.all();
      }
  
      return Type.get(input.split(/\s*,\s*/));
    };
  };
  /**
   * A Bounty specified by name.
   *
   * @category In-game constant
   */
  
  
  var $bounty = createSingleConstant(Bounty);
  /**
   * A list of Bounties specified by a comma-separated list of names.
   * For a list of all possible Bounties, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$bounty = $bounty;
  var $bounties = createPluralConstant(Bounty);
  /**
   * A Class specified by name.
   *
   * @category In-game constant
   */
  
  exports.$bounties = $bounties;
  var $class = createSingleConstant(Class);
  /**
   * A list of Classes specified by a comma-separated list of names.
   * For a list of all possible Classes, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$class = $class;
  var $classes = createPluralConstant(Class);
  /**
   * A Coinmaster specified by name.
   *
   * @category In-game constant
   */
  
  exports.$classes = $classes;
  var $coinmaster = createSingleConstant(Coinmaster);
  /**
   * A list of Coinmasters specified by a comma-separated list of names.
   * For a list of all possible Coinmasters, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$coinmaster = $coinmaster;
  var $coinmasters = createPluralConstant(Coinmaster);
  /**
   * An Effect specified by name.
   *
   * @category In-game constant
   */
  
  exports.$coinmasters = $coinmasters;
  var $effect = createSingleConstant(Effect);
  /**
   * A list of Effects specified by a comma-separated list of names.
   * For a list of all possible Effects, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$effect = $effect;
  var $effects = createPluralConstant(Effect);
  /**
   * An Element specified by name.
   *
   * @category In-game constant
   */
  
  exports.$effects = $effects;
  var $element = createSingleConstant(Element);
  /**
   * A list of Elements specified by a comma-separated list of names.
   * For a list of all possible Elements, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$element = $element;
  var $elements = createPluralConstant(Element);
  /**
   * A Familiar specified by name.
   *
   * @category In-game constant
   */
  
  exports.$elements = $elements;
  var $familiar = createSingleConstant(Familiar);
  /**
   * A list of Familiars specified by a comma-separated list of names.
   * For a list of all possible Familiars, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$familiar = $familiar;
  var $familiars = createPluralConstant(Familiar);
  /**
   * An Item specified by name.
   *
   * @category In-game constant
   */
  
  exports.$familiars = $familiars;
  var $item = createSingleConstant(Item);
  /**
   * A list of Items specified by a comma-separated list of names.
   * For a list of all possible Items, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$item = $item;
  var $items = createPluralConstant(Item);
  /**
   * A Location specified by name.
   *
   * @category In-game constant
   */
  
  exports.$items = $items;
  var $location = createSingleConstant(Location);
  /**
   * A list of Locations specified by a comma-separated list of names.
   * For a list of all possible Locations, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$location = $location;
  var $locations = createPluralConstant(Location);
  /**
   * A Monster specified by name.
   *
   * @category In-game constant
   */
  
  exports.$locations = $locations;
  var $monster = createSingleConstant(Monster);
  /**
   * A list of Monsters specified by a comma-separated list of names.
   * For a list of all possible Monsters, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$monster = $monster;
  var $monsters = createPluralConstant(Monster);
  /**
   * A Phylum specified by name.
   *
   * @category In-game constant
   */
  
  exports.$monsters = $monsters;
  var $phylum = createSingleConstant(Phylum);
  /**
   * A list of Phyla specified by a comma-separated list of names.
   * For a list of all possible Phyla, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$phylum = $phylum;
  var $phyla = createPluralConstant(Phylum);
  /**
   * A Servant specified by name.
   *
   * @category In-game constant
   */
  
  exports.$phyla = $phyla;
  var $servant = createSingleConstant(Servant);
  /**
   * A list of Servants specified by a comma-separated list of names.
   * For a list of all possible Servants, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$servant = $servant;
  var $servants = createPluralConstant(Servant);
  /**
   * A Skill specified by name.
   *
   * @category In-game constant
   */
  
  exports.$servants = $servants;
  var $skill = createSingleConstant(Skill);
  /**
   * A list of Skills specified by a comma-separated list of names.
   * For a list of all possible Skills, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$skill = $skill;
  var $skills = createPluralConstant(Skill);
  /**
   * A Slot specified by name.
   *
   * @category In-game constant
   */
  
  exports.$skills = $skills;
  var $slot = createSingleConstant(Slot);
  /**
   * A list of Slots specified by a comma-separated list of names.
   * For a list of all possible Slots, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$slot = $slot;
  var $slots = createPluralConstant(Slot);
  /**
   * A Stat specified by name.
   *
   * @category In-game constant
   */
  
  exports.$slots = $slots;
  var $stat = createSingleConstant(Stat);
  /**
   * A list of Stats specified by a comma-separated list of names.
   * For a list of all possible Stats, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$stat = $stat;
  var $stats = createPluralConstant(Stat);
  /**
   * A Thrall specified by name.
   *
   * @category In-game constant
   */
  
  exports.$stats = $stats;
  var $thrall = createSingleConstant(Thrall);
  /**
   * A list of Thralls specified by a comma-separated list of names.
   * For a list of all possible Thralls, leave the template string blank.
   *
   * @category In-game constant
   */
  
  exports.$thrall = $thrall;
  var $thralls = createPluralConstant(Thrall);
  exports.$thralls = $thralls;
  
  /***/ }),
  
  /***/ "./node_modules/libram/dist/utils.js":
  /*!*******************************************!*\
    !*** ./node_modules/libram/dist/utils.js ***!
    \*******************************************/
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
  
  "use strict";
  
  
  __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
  
  __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
  
  Object.defineProperty(exports, "__esModule", ({
    value: true
  }));
  exports.notNull = notNull;
  exports.parseNumber = parseNumber;
  exports.clamp = clamp;
  exports.chunk = chunk;
  exports.arrayToCountedMap = arrayToCountedMap;
  exports.countedMapToArray = countedMapToArray;
  exports.countedMapToString = countedMapToString;
  
  __webpack_require__(/*! core-js/modules/es.number.parse-int.js */ "./node_modules/core-js/modules/es.number.parse-int.js");
  
  __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  
  __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
  
  __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
  
  __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
  
  __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  
  __webpack_require__(/*! core-js/modules/es.array.flat-map.js */ "./node_modules/core-js/modules/es.array.flat-map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.unscopables.flat-map.js */ "./node_modules/core-js/modules/es.array.unscopables.flat-map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.fill.js */ "./node_modules/core-js/modules/es.array.fill.js");
  
  __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
  
  __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
  
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _iterableToArrayLimit(arr, i) {
    var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
  
    if (_i == null) return;
    var _arr = [];
    var _n = true;
    var _d = false;
  
    var _s, _e;
  
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  }
  
  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  
  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }
  
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  }
  
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
  
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i];
    }
  
    return arr2;
  }
  
  function notNull(value) {
    return value !== null;
  }
  
  function parseNumber(n) {
    return Number.parseInt(n.replace(/,/g, ""));
  }
  /**
   * Clamp a number between lower and upper bounds.
   *
   * @param n Number to clamp.
   * @param min Lower bound.
   * @param max Upper bound.
   */
  
  
  function clamp(n, min, max) {
    return Math.max(min, Math.min(max, n));
  }
  /**
   * Split an {@param array} into {@param chunkSize} sized chunks
   *
   * @param array Array to split
   * @param chunkSize Size of chunk
   */
  
  
  function chunk(array, chunkSize) {
    var result = [];
  
    for (var i = 0; i < array.length; i += chunkSize) {
      result.push(array.slice(i, i + chunkSize));
    }
  
    return result;
  }
  
  function arrayToCountedMap(array) {
    if (!Array.isArray(array)) return array;
    var map = new Map();
    array.forEach(function (item) {
      map.set(item, (map.get(item) || 0) + 1);
    });
    return map;
  }
  
  function countedMapToArray(map) {
    return _toConsumableArray(map).flatMap(function (_ref) {
      var _ref2 = _slicedToArray(_ref, 2),
          item = _ref2[0],
          quantity = _ref2[1];
  
      return Array(quantity).fill(item);
    });
  }
  
  function countedMapToString(map) {
    return _toConsumableArray(map).map(function (_ref3) {
      var _ref4 = _slicedToArray(_ref3, 2),
          item = _ref4[0],
          quantity = _ref4[1];
  
      return "".concat(quantity, " x ").concat(item);
    }).join(", ");
  }
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_DataView.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_DataView.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
      root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /* Built-in method references that are verified to be native. */
  
  
  var DataView = getNative(root, 'DataView');
  module.exports = DataView;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Hash.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/_Hash.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/lodash/_hashClear.js"),
      hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/lodash/_hashDelete.js"),
      hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/lodash/_hashGet.js"),
      hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/lodash/_hashHas.js"),
      hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/lodash/_hashSet.js");
  /**
   * Creates a hash object.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  
  
  function Hash(entries) {
    var index = -1,
        length = entries == null ? 0 : entries.length;
    this.clear();
  
    while (++index < length) {
      var entry = entries[index];
      this.set(entry[0], entry[1]);
    }
  } // Add methods to `Hash`.
  
  
  Hash.prototype.clear = hashClear;
  Hash.prototype['delete'] = hashDelete;
  Hash.prototype.get = hashGet;
  Hash.prototype.has = hashHas;
  Hash.prototype.set = hashSet;
  module.exports = Hash;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_ListCache.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_ListCache.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/lodash/_listCacheClear.js"),
      listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/lodash/_listCacheDelete.js"),
      listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/lodash/_listCacheGet.js"),
      listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/lodash/_listCacheHas.js"),
      listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/lodash/_listCacheSet.js");
  /**
   * Creates an list cache object.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  
  
  function ListCache(entries) {
    var index = -1,
        length = entries == null ? 0 : entries.length;
    this.clear();
  
    while (++index < length) {
      var entry = entries[index];
      this.set(entry[0], entry[1]);
    }
  } // Add methods to `ListCache`.
  
  
  ListCache.prototype.clear = listCacheClear;
  ListCache.prototype['delete'] = listCacheDelete;
  ListCache.prototype.get = listCacheGet;
  ListCache.prototype.has = listCacheHas;
  ListCache.prototype.set = listCacheSet;
  module.exports = ListCache;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Map.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/_Map.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
      root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /* Built-in method references that are verified to be native. */
  
  
  var Map = getNative(root, 'Map');
  module.exports = Map;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_MapCache.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_MapCache.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/lodash/_mapCacheClear.js"),
      mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/lodash/_mapCacheDelete.js"),
      mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/lodash/_mapCacheGet.js"),
      mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/lodash/_mapCacheHas.js"),
      mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/lodash/_mapCacheSet.js");
  /**
   * Creates a map cache object to store key-value pairs.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  
  
  function MapCache(entries) {
    var index = -1,
        length = entries == null ? 0 : entries.length;
    this.clear();
  
    while (++index < length) {
      var entry = entries[index];
      this.set(entry[0], entry[1]);
    }
  } // Add methods to `MapCache`.
  
  
  MapCache.prototype.clear = mapCacheClear;
  MapCache.prototype['delete'] = mapCacheDelete;
  MapCache.prototype.get = mapCacheGet;
  MapCache.prototype.has = mapCacheHas;
  MapCache.prototype.set = mapCacheSet;
  module.exports = MapCache;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Promise.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_Promise.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
      root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /* Built-in method references that are verified to be native. */
  
  
  var Promise = getNative(root, 'Promise');
  module.exports = Promise;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Set.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/_Set.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
      root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /* Built-in method references that are verified to be native. */
  
  
  var Set = getNative(root, 'Set');
  module.exports = Set;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_SetCache.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_SetCache.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js"),
      setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/lodash/_setCacheAdd.js"),
      setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/lodash/_setCacheHas.js");
  /**
   *
   * Creates an array cache object to store unique values.
   *
   * @private
   * @constructor
   * @param {Array} [values] The values to cache.
   */
  
  
  function SetCache(values) {
    var index = -1,
        length = values == null ? 0 : values.length;
    this.__data__ = new MapCache();
  
    while (++index < length) {
      this.add(values[index]);
    }
  } // Add methods to `SetCache`.
  
  
  SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
  SetCache.prototype.has = setCacheHas;
  module.exports = SetCache;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Stack.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/_Stack.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
      stackClear = __webpack_require__(/*! ./_stackClear */ "./node_modules/lodash/_stackClear.js"),
      stackDelete = __webpack_require__(/*! ./_stackDelete */ "./node_modules/lodash/_stackDelete.js"),
      stackGet = __webpack_require__(/*! ./_stackGet */ "./node_modules/lodash/_stackGet.js"),
      stackHas = __webpack_require__(/*! ./_stackHas */ "./node_modules/lodash/_stackHas.js"),
      stackSet = __webpack_require__(/*! ./_stackSet */ "./node_modules/lodash/_stackSet.js");
  /**
   * Creates a stack cache object to store key-value pairs.
   *
   * @private
   * @constructor
   * @param {Array} [entries] The key-value pairs to cache.
   */
  
  
  function Stack(entries) {
    var data = this.__data__ = new ListCache(entries);
    this.size = data.size;
  } // Add methods to `Stack`.
  
  
  Stack.prototype.clear = stackClear;
  Stack.prototype['delete'] = stackDelete;
  Stack.prototype.get = stackGet;
  Stack.prototype.has = stackHas;
  Stack.prototype.set = stackSet;
  module.exports = Stack;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Symbol.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/_Symbol.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /** Built-in value references. */
  
  
  var _Symbol = root.Symbol;
  module.exports = _Symbol;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Uint8Array.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_Uint8Array.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /** Built-in value references. */
  
  
  var Uint8Array = root.Uint8Array;
  module.exports = Uint8Array;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_WeakMap.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_WeakMap.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
      root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /* Built-in method references that are verified to be native. */
  
  
  var WeakMap = getNative(root, 'WeakMap');
  module.exports = WeakMap;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_apply.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/_apply.js ***!
    \***************************************/
  /***/ ((module) => {
  
  /**
   * A faster alternative to `Function#apply`, this function invokes `func`
   * with the `this` binding of `thisArg` and the arguments of `args`.
   *
   * @private
   * @param {Function} func The function to invoke.
   * @param {*} thisArg The `this` binding of `func`.
   * @param {Array} args The arguments to invoke `func` with.
   * @returns {*} Returns the result of `func`.
   */
  function apply(func, thisArg, args) {
    switch (args.length) {
      case 0:
        return func.call(thisArg);
  
      case 1:
        return func.call(thisArg, args[0]);
  
      case 2:
        return func.call(thisArg, args[0], args[1]);
  
      case 3:
        return func.call(thisArg, args[0], args[1], args[2]);
    }
  
    return func.apply(thisArg, args);
  }
  
  module.exports = apply;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayFilter.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_arrayFilter.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  /**
   * A specialized version of `_.filter` for arrays without support for
   * iteratee shorthands.
   *
   * @private
   * @param {Array} [array] The array to iterate over.
   * @param {Function} predicate The function invoked per iteration.
   * @returns {Array} Returns the new filtered array.
   */
  function arrayFilter(array, predicate) {
    var index = -1,
        length = array == null ? 0 : array.length,
        resIndex = 0,
        result = [];
  
    while (++index < length) {
      var value = array[index];
  
      if (predicate(value, index, array)) {
        result[resIndex++] = value;
      }
    }
  
    return result;
  }
  
  module.exports = arrayFilter;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayLikeKeys.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_arrayLikeKeys.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseTimes = __webpack_require__(/*! ./_baseTimes */ "./node_modules/lodash/_baseTimes.js"),
      isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
      isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
      isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
      isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
      isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * Creates an array of the enumerable property names of the array-like `value`.
   *
   * @private
   * @param {*} value The value to query.
   * @param {boolean} inherited Specify returning inherited property names.
   * @returns {Array} Returns the array of property names.
   */
  
  function arrayLikeKeys(value, inherited) {
    var isArr = isArray(value),
        isArg = !isArr && isArguments(value),
        isBuff = !isArr && !isArg && isBuffer(value),
        isType = !isArr && !isArg && !isBuff && isTypedArray(value),
        skipIndexes = isArr || isArg || isBuff || isType,
        result = skipIndexes ? baseTimes(value.length, String) : [],
        length = result.length;
  
    for (var key in value) {
      if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.
      key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.
      isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.
      isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.
      isIndex(key, length)))) {
        result.push(key);
      }
    }
  
    return result;
  }
  
  module.exports = arrayLikeKeys;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayPush.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_arrayPush.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  /**
   * Appends the elements of `values` to `array`.
   *
   * @private
   * @param {Array} array The array to modify.
   * @param {Array} values The values to append.
   * @returns {Array} Returns `array`.
   */
  function arrayPush(array, values) {
    var index = -1,
        length = values.length,
        offset = array.length;
  
    while (++index < length) {
      array[offset + index] = values[index];
    }
  
    return array;
  }
  
  module.exports = arrayPush;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arraySome.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_arraySome.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  /**
   * A specialized version of `_.some` for arrays without support for iteratee
   * shorthands.
   *
   * @private
   * @param {Array} [array] The array to iterate over.
   * @param {Function} predicate The function invoked per iteration.
   * @returns {boolean} Returns `true` if any element passes the predicate check,
   *  else `false`.
   */
  function arraySome(array, predicate) {
    var index = -1,
        length = array == null ? 0 : array.length;
  
    while (++index < length) {
      if (predicate(array[index], index, array)) {
        return true;
      }
    }
  
    return false;
  }
  
  module.exports = arraySome;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_assignMergeValue.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_assignMergeValue.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
      eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
  /**
   * This function is like `assignValue` except that it doesn't assign
   * `undefined` values.
   *
   * @private
   * @param {Object} object The object to modify.
   * @param {string} key The key of the property to assign.
   * @param {*} value The value to assign.
   */
  
  
  function assignMergeValue(object, key, value) {
    if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {
      baseAssignValue(object, key, value);
    }
  }
  
  module.exports = assignMergeValue;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_assignValue.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_assignValue.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
      eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * Assigns `value` to `key` of `object` if the existing value is not equivalent
   * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
   * for equality comparisons.
   *
   * @private
   * @param {Object} object The object to modify.
   * @param {string} key The key of the property to assign.
   * @param {*} value The value to assign.
   */
  
  function assignValue(object, key, value) {
    var objValue = object[key];
  
    if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {
      baseAssignValue(object, key, value);
    }
  }
  
  module.exports = assignValue;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_assocIndexOf.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_assocIndexOf.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
  /**
   * Gets the index at which the `key` is found in `array` of key-value pairs.
   *
   * @private
   * @param {Array} array The array to inspect.
   * @param {*} key The key to search for.
   * @returns {number} Returns the index of the matched value, else `-1`.
   */
  
  
  function assocIndexOf(array, key) {
    var length = array.length;
  
    while (length--) {
      if (eq(array[length][0], key)) {
        return length;
      }
    }
  
    return -1;
  }
  
  module.exports = assocIndexOf;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseAssignValue.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseAssignValue.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js");
  /**
   * The base implementation of `assignValue` and `assignMergeValue` without
   * value checks.
   *
   * @private
   * @param {Object} object The object to modify.
   * @param {string} key The key of the property to assign.
   * @param {*} value The value to assign.
   */
  
  
  function baseAssignValue(object, key, value) {
    if (key == '__proto__' && defineProperty) {
      defineProperty(object, key, {
        'configurable': true,
        'enumerable': true,
        'value': value,
        'writable': true
      });
    } else {
      object[key] = value;
    }
  }
  
  module.exports = baseAssignValue;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseCreate.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseCreate.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
  /** Built-in value references. */
  
  
  var objectCreate = Object.create;
  /**
   * The base implementation of `_.create` without support for assigning
   * properties to the created object.
   *
   * @private
   * @param {Object} proto The object to inherit from.
   * @returns {Object} Returns the new object.
   */
  
  var baseCreate = function () {
    function object() {}
  
    return function (proto) {
      if (!isObject(proto)) {
        return {};
      }
  
      if (objectCreate) {
        return objectCreate(proto);
      }
  
      object.prototype = proto;
      var result = new object();
      object.prototype = undefined;
      return result;
    };
  }();
  
  module.exports = baseCreate;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseFor.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_baseFor.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ "./node_modules/lodash/_createBaseFor.js");
  /**
   * The base implementation of `baseForOwn` which iterates over `object`
   * properties returned by `keysFunc` and invokes `iteratee` for each property.
   * Iteratee functions may exit iteration early by explicitly returning `false`.
   *
   * @private
   * @param {Object} object The object to iterate over.
   * @param {Function} iteratee The function invoked per iteration.
   * @param {Function} keysFunc The function to get the keys of `object`.
   * @returns {Object} Returns `object`.
   */
  
  
  var baseFor = createBaseFor();
  module.exports = baseFor;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseGetAllKeys.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_baseGetAllKeys.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
      isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
  /**
   * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
   * `keysFunc` and `symbolsFunc` to get the enumerable property names and
   * symbols of `object`.
   *
   * @private
   * @param {Object} object The object to query.
   * @param {Function} keysFunc The function to get the keys of `object`.
   * @param {Function} symbolsFunc The function to get the symbols of `object`.
   * @returns {Array} Returns the array of property names and symbols.
   */
  
  
  function baseGetAllKeys(object, keysFunc, symbolsFunc) {
    var result = keysFunc(object);
    return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
  }
  
  module.exports = baseGetAllKeys;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseGetTag.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseGetTag.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var _Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
      getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
      objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");
  /** `Object#toString` result references. */
  
  
  var nullTag = '[object Null]',
      undefinedTag = '[object Undefined]';
  /** Built-in value references. */
  
  var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
  /**
   * The base implementation of `getTag` without fallbacks for buggy environments.
   *
   * @private
   * @param {*} value The value to query.
   * @returns {string} Returns the `toStringTag`.
   */
  
  function baseGetTag(value) {
    if (value == null) {
      return value === undefined ? undefinedTag : nullTag;
    }
  
    return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
  }
  
  module.exports = baseGetTag;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsArguments.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseIsArguments.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
      isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
  /** `Object#toString` result references. */
  
  
  var argsTag = '[object Arguments]';
  /**
   * The base implementation of `_.isArguments`.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an `arguments` object,
   */
  
  function baseIsArguments(value) {
    return isObjectLike(value) && baseGetTag(value) == argsTag;
  }
  
  module.exports = baseIsArguments;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsEqual.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseIsEqual.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./node_modules/lodash/_baseIsEqualDeep.js"),
      isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
  /**
   * The base implementation of `_.isEqual` which supports partial comparisons
   * and tracks traversed objects.
   *
   * @private
   * @param {*} value The value to compare.
   * @param {*} other The other value to compare.
   * @param {boolean} bitmask The bitmask flags.
   *  1 - Unordered comparison
   *  2 - Partial comparison
   * @param {Function} [customizer] The function to customize comparisons.
   * @param {Object} [stack] Tracks traversed `value` and `other` objects.
   * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
   */
  
  
  function baseIsEqual(value, other, bitmask, customizer, stack) {
    if (value === other) {
      return true;
    }
  
    if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
      return value !== value && other !== other;
    }
  
    return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
  }
  
  module.exports = baseIsEqual;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsEqualDeep.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseIsEqualDeep.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
      equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
      equalByTag = __webpack_require__(/*! ./_equalByTag */ "./node_modules/lodash/_equalByTag.js"),
      equalObjects = __webpack_require__(/*! ./_equalObjects */ "./node_modules/lodash/_equalObjects.js"),
      getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
      isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
      isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
      isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
  /** Used to compose bitmasks for value comparisons. */
  
  
  var COMPARE_PARTIAL_FLAG = 1;
  /** `Object#toString` result references. */
  
  var argsTag = '[object Arguments]',
      arrayTag = '[object Array]',
      objectTag = '[object Object]';
  /** Used for built-in method references. */
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * A specialized version of `baseIsEqual` for arrays and objects which performs
   * deep comparisons and tracks traversed objects enabling objects with circular
   * references to be compared.
   *
   * @private
   * @param {Object} object The object to compare.
   * @param {Object} other The other object to compare.
   * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
   * @param {Function} customizer The function to customize comparisons.
   * @param {Function} equalFunc The function to determine equivalents of values.
   * @param {Object} [stack] Tracks traversed `object` and `other` objects.
   * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
   */
  
  function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
    var objIsArr = isArray(object),
        othIsArr = isArray(other),
        objTag = objIsArr ? arrayTag : getTag(object),
        othTag = othIsArr ? arrayTag : getTag(other);
    objTag = objTag == argsTag ? objectTag : objTag;
    othTag = othTag == argsTag ? objectTag : othTag;
    var objIsObj = objTag == objectTag,
        othIsObj = othTag == objectTag,
        isSameTag = objTag == othTag;
  
    if (isSameTag && isBuffer(object)) {
      if (!isBuffer(other)) {
        return false;
      }
  
      objIsArr = true;
      objIsObj = false;
    }
  
    if (isSameTag && !objIsObj) {
      stack || (stack = new Stack());
      return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
    }
  
    if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
      var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
          othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
  
      if (objIsWrapped || othIsWrapped) {
        var objUnwrapped = objIsWrapped ? object.value() : object,
            othUnwrapped = othIsWrapped ? other.value() : other;
        stack || (stack = new Stack());
        return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
      }
    }
  
    if (!isSameTag) {
      return false;
    }
  
    stack || (stack = new Stack());
    return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
  }
  
  module.exports = baseIsEqualDeep;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsNative.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_baseIsNative.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
      isMasked = __webpack_require__(/*! ./_isMasked */ "./node_modules/lodash/_isMasked.js"),
      isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
      toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");
  /**
   * Used to match `RegExp`
   * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
   */
  
  
  var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
  /** Used to detect host constructors (Safari). */
  
  var reIsHostCtor = /^\[object .+?Constructor\]$/;
  /** Used for built-in method references. */
  
  var funcProto = Function.prototype,
      objectProto = Object.prototype;
  /** Used to resolve the decompiled source of functions. */
  
  var funcToString = funcProto.toString;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /** Used to detect if a method is native. */
  
  var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
  /**
   * The base implementation of `_.isNative` without bad shim checks.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a native function,
   *  else `false`.
   */
  
  function baseIsNative(value) {
    if (!isObject(value) || isMasked(value)) {
      return false;
    }
  
    var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
    return pattern.test(toSource(value));
  }
  
  module.exports = baseIsNative;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsTypedArray.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_baseIsTypedArray.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
      isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),
      isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
  /** `Object#toString` result references. */
  
  
  var argsTag = '[object Arguments]',
      arrayTag = '[object Array]',
      boolTag = '[object Boolean]',
      dateTag = '[object Date]',
      errorTag = '[object Error]',
      funcTag = '[object Function]',
      mapTag = '[object Map]',
      numberTag = '[object Number]',
      objectTag = '[object Object]',
      regexpTag = '[object RegExp]',
      setTag = '[object Set]',
      stringTag = '[object String]',
      weakMapTag = '[object WeakMap]';
  var arrayBufferTag = '[object ArrayBuffer]',
      dataViewTag = '[object DataView]',
      float32Tag = '[object Float32Array]',
      float64Tag = '[object Float64Array]',
      int8Tag = '[object Int8Array]',
      int16Tag = '[object Int16Array]',
      int32Tag = '[object Int32Array]',
      uint8Tag = '[object Uint8Array]',
      uint8ClampedTag = '[object Uint8ClampedArray]',
      uint16Tag = '[object Uint16Array]',
      uint32Tag = '[object Uint32Array]';
  /** Used to identify `toStringTag` values of typed arrays. */
  
  var typedArrayTags = {};
  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
  typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
  /**
   * The base implementation of `_.isTypedArray` without Node.js optimizations.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
   */
  
  function baseIsTypedArray(value) {
    return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
  }
  
  module.exports = baseIsTypedArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseKeys.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseKeys.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
      nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./node_modules/lodash/_nativeKeys.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
   *
   * @private
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   */
  
  function baseKeys(object) {
    if (!isPrototype(object)) {
      return nativeKeys(object);
    }
  
    var result = [];
  
    for (var key in Object(object)) {
      if (hasOwnProperty.call(object, key) && key != 'constructor') {
        result.push(key);
      }
    }
  
    return result;
  }
  
  module.exports = baseKeys;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseKeysIn.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseKeysIn.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
      isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
      nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ "./node_modules/lodash/_nativeKeysIn.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
   *
   * @private
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   */
  
  function baseKeysIn(object) {
    if (!isObject(object)) {
      return nativeKeysIn(object);
    }
  
    var isProto = isPrototype(object),
        result = [];
  
    for (var key in object) {
      if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
        result.push(key);
      }
    }
  
    return result;
  }
  
  module.exports = baseKeysIn;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseMerge.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseMerge.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
      assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ "./node_modules/lodash/_assignMergeValue.js"),
      baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
      baseMergeDeep = __webpack_require__(/*! ./_baseMergeDeep */ "./node_modules/lodash/_baseMergeDeep.js"),
      isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
      keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js"),
      safeGet = __webpack_require__(/*! ./_safeGet */ "./node_modules/lodash/_safeGet.js");
  /**
   * The base implementation of `_.merge` without support for multiple sources.
   *
   * @private
   * @param {Object} object The destination object.
   * @param {Object} source The source object.
   * @param {number} srcIndex The index of `source`.
   * @param {Function} [customizer] The function to customize merged values.
   * @param {Object} [stack] Tracks traversed source values and their merged
   *  counterparts.
   */
  
  
  function baseMerge(object, source, srcIndex, customizer, stack) {
    if (object === source) {
      return;
    }
  
    baseFor(source, function (srcValue, key) {
      stack || (stack = new Stack());
  
      if (isObject(srcValue)) {
        baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
      } else {
        var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;
  
        if (newValue === undefined) {
          newValue = srcValue;
        }
  
        assignMergeValue(object, key, newValue);
      }
    }, keysIn);
  }
  
  module.exports = baseMerge;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseMergeDeep.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_baseMergeDeep.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ "./node_modules/lodash/_assignMergeValue.js"),
      cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ "./node_modules/lodash/_cloneBuffer.js"),
      cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ "./node_modules/lodash/_cloneTypedArray.js"),
      copyArray = __webpack_require__(/*! ./_copyArray */ "./node_modules/lodash/_copyArray.js"),
      initCloneObject = __webpack_require__(/*! ./_initCloneObject */ "./node_modules/lodash/_initCloneObject.js"),
      isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
      isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
      isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ "./node_modules/lodash/isArrayLikeObject.js"),
      isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
      isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
      isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
      isPlainObject = __webpack_require__(/*! ./isPlainObject */ "./node_modules/lodash/isPlainObject.js"),
      isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js"),
      safeGet = __webpack_require__(/*! ./_safeGet */ "./node_modules/lodash/_safeGet.js"),
      toPlainObject = __webpack_require__(/*! ./toPlainObject */ "./node_modules/lodash/toPlainObject.js");
  /**
   * A specialized version of `baseMerge` for arrays and objects which performs
   * deep merges and tracks traversed objects enabling objects with circular
   * references to be merged.
   *
   * @private
   * @param {Object} object The destination object.
   * @param {Object} source The source object.
   * @param {string} key The key of the value to merge.
   * @param {number} srcIndex The index of `source`.
   * @param {Function} mergeFunc The function to merge values.
   * @param {Function} [customizer] The function to customize assigned values.
   * @param {Object} [stack] Tracks traversed source values and their merged
   *  counterparts.
   */
  
  
  function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
    var objValue = safeGet(object, key),
        srcValue = safeGet(source, key),
        stacked = stack.get(srcValue);
  
    if (stacked) {
      assignMergeValue(object, key, stacked);
      return;
    }
  
    var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;
    var isCommon = newValue === undefined;
  
    if (isCommon) {
      var isArr = isArray(srcValue),
          isBuff = !isArr && isBuffer(srcValue),
          isTyped = !isArr && !isBuff && isTypedArray(srcValue);
      newValue = srcValue;
  
      if (isArr || isBuff || isTyped) {
        if (isArray(objValue)) {
          newValue = objValue;
        } else if (isArrayLikeObject(objValue)) {
          newValue = copyArray(objValue);
        } else if (isBuff) {
          isCommon = false;
          newValue = cloneBuffer(srcValue, true);
        } else if (isTyped) {
          isCommon = false;
          newValue = cloneTypedArray(srcValue, true);
        } else {
          newValue = [];
        }
      } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
        newValue = objValue;
  
        if (isArguments(objValue)) {
          newValue = toPlainObject(objValue);
        } else if (!isObject(objValue) || isFunction(objValue)) {
          newValue = initCloneObject(srcValue);
        }
      } else {
        isCommon = false;
      }
    }
  
    if (isCommon) {
      // Recursively merge objects and arrays (susceptible to call stack limits).
      stack.set(srcValue, newValue);
      mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
      stack['delete'](srcValue);
    }
  
    assignMergeValue(object, key, newValue);
  }
  
  module.exports = baseMergeDeep;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseRest.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseRest.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),
      overRest = __webpack_require__(/*! ./_overRest */ "./node_modules/lodash/_overRest.js"),
      setToString = __webpack_require__(/*! ./_setToString */ "./node_modules/lodash/_setToString.js");
  /**
   * The base implementation of `_.rest` which doesn't validate or coerce arguments.
   *
   * @private
   * @param {Function} func The function to apply a rest parameter to.
   * @param {number} [start=func.length-1] The start position of the rest parameter.
   * @returns {Function} Returns the new function.
   */
  
  
  function baseRest(func, start) {
    return setToString(overRest(func, start, identity), func + '');
  }
  
  module.exports = baseRest;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseSetToString.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseSetToString.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var constant = __webpack_require__(/*! ./constant */ "./node_modules/lodash/constant.js"),
      defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js"),
      identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
  /**
   * The base implementation of `setToString` without support for hot loop shorting.
   *
   * @private
   * @param {Function} func The function to modify.
   * @param {Function} string The `toString` result.
   * @returns {Function} Returns `func`.
   */
  
  
  var baseSetToString = !defineProperty ? identity : function (func, string) {
    return defineProperty(func, 'toString', {
      'configurable': true,
      'enumerable': false,
      'value': constant(string),
      'writable': true
    });
  };
  module.exports = baseSetToString;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseTimes.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseTimes.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  /**
   * The base implementation of `_.times` without support for iteratee shorthands
   * or max array length checks.
   *
   * @private
   * @param {number} n The number of times to invoke `iteratee`.
   * @param {Function} iteratee The function invoked per iteration.
   * @returns {Array} Returns the array of results.
   */
  function baseTimes(n, iteratee) {
    var index = -1,
        result = Array(n);
  
    while (++index < n) {
      result[index] = iteratee(index);
    }
  
    return result;
  }
  
  module.exports = baseTimes;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseUnary.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseUnary.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  /**
   * The base implementation of `_.unary` without support for storing metadata.
   *
   * @private
   * @param {Function} func The function to cap arguments for.
   * @returns {Function} Returns the new capped function.
   */
  function baseUnary(func) {
    return function (value) {
      return func(value);
    };
  }
  
  module.exports = baseUnary;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_cacheHas.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_cacheHas.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /**
   * Checks if a `cache` value for `key` exists.
   *
   * @private
   * @param {Object} cache The cache to query.
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  function cacheHas(cache, key) {
    return cache.has(key);
  }
  
  module.exports = cacheHas;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_cloneArrayBuffer.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_cloneArrayBuffer.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js");
  /**
   * Creates a clone of `arrayBuffer`.
   *
   * @private
   * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
   * @returns {ArrayBuffer} Returns the cloned array buffer.
   */
  
  
  function cloneArrayBuffer(arrayBuffer) {
    var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
    new Uint8Array(result).set(new Uint8Array(arrayBuffer));
    return result;
  }
  
  module.exports = cloneArrayBuffer;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_cloneBuffer.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_cloneBuffer.js ***!
    \*********************************************/
  /***/ ((module, exports, __webpack_require__) => {
  
  /* module decorator */ module = __webpack_require__.nmd(module);
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /** Detect free variable `exports`. */
  
  
  var freeExports = ( false ? 0 : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;
  /** Detect free variable `module`. */
  
  var freeModule = freeExports && ( false ? 0 : _typeof(module)) == 'object' && module && !module.nodeType && module;
  /** Detect the popular CommonJS extension `module.exports`. */
  
  var moduleExports = freeModule && freeModule.exports === freeExports;
  /** Built-in value references. */
  
  var Buffer = moduleExports ? root.Buffer : undefined,
      allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
  /**
   * Creates a clone of  `buffer`.
   *
   * @private
   * @param {Buffer} buffer The buffer to clone.
   * @param {boolean} [isDeep] Specify a deep clone.
   * @returns {Buffer} Returns the cloned buffer.
   */
  
  function cloneBuffer(buffer, isDeep) {
    if (isDeep) {
      return buffer.slice();
    }
  
    var length = buffer.length,
        result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
    buffer.copy(result);
    return result;
  }
  
  module.exports = cloneBuffer;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_cloneTypedArray.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_cloneTypedArray.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");
  /**
   * Creates a clone of `typedArray`.
   *
   * @private
   * @param {Object} typedArray The typed array to clone.
   * @param {boolean} [isDeep] Specify a deep clone.
   * @returns {Object} Returns the cloned typed array.
   */
  
  
  function cloneTypedArray(typedArray, isDeep) {
    var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
    return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
  }
  
  module.exports = cloneTypedArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_copyArray.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_copyArray.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  /**
   * Copies the values of `source` to `array`.
   *
   * @private
   * @param {Array} source The array to copy values from.
   * @param {Array} [array=[]] The array to copy values to.
   * @returns {Array} Returns `array`.
   */
  function copyArray(source, array) {
    var index = -1,
        length = source.length;
    array || (array = Array(length));
  
    while (++index < length) {
      array[index] = source[index];
    }
  
    return array;
  }
  
  module.exports = copyArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_copyObject.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_copyObject.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
      baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js");
  /**
   * Copies properties of `source` to `object`.
   *
   * @private
   * @param {Object} source The object to copy properties from.
   * @param {Array} props The property identifiers to copy.
   * @param {Object} [object={}] The object to copy properties to.
   * @param {Function} [customizer] The function to customize copied values.
   * @returns {Object} Returns `object`.
   */
  
  
  function copyObject(source, props, object, customizer) {
    var isNew = !object;
    object || (object = {});
    var index = -1,
        length = props.length;
  
    while (++index < length) {
      var key = props[index];
      var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;
  
      if (newValue === undefined) {
        newValue = source[key];
      }
  
      if (isNew) {
        baseAssignValue(object, key, newValue);
      } else {
        assignValue(object, key, newValue);
      }
    }
  
    return object;
  }
  
  module.exports = copyObject;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_coreJsData.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_coreJsData.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
  /** Used to detect overreaching core-js shims. */
  
  
  var coreJsData = root['__core-js_shared__'];
  module.exports = coreJsData;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createAssigner.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_createAssigner.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
      isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js");
  /**
   * Creates a function like `_.assign`.
   *
   * @private
   * @param {Function} assigner The function to assign values.
   * @returns {Function} Returns the new assigner function.
   */
  
  
  function createAssigner(assigner) {
    return baseRest(function (object, sources) {
      var index = -1,
          length = sources.length,
          customizer = length > 1 ? sources[length - 1] : undefined,
          guard = length > 2 ? sources[2] : undefined;
      customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;
  
      if (guard && isIterateeCall(sources[0], sources[1], guard)) {
        customizer = length < 3 ? undefined : customizer;
        length = 1;
      }
  
      object = Object(object);
  
      while (++index < length) {
        var source = sources[index];
  
        if (source) {
          assigner(object, source, index, customizer);
        }
      }
  
      return object;
    });
  }
  
  module.exports = createAssigner;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createBaseFor.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_createBaseFor.js ***!
    \***********************************************/
  /***/ ((module) => {
  
  /**
   * Creates a base function for methods like `_.forIn` and `_.forOwn`.
   *
   * @private
   * @param {boolean} [fromRight] Specify iterating from right to left.
   * @returns {Function} Returns the new base function.
   */
  function createBaseFor(fromRight) {
    return function (object, iteratee, keysFunc) {
      var index = -1,
          iterable = Object(object),
          props = keysFunc(object),
          length = props.length;
  
      while (length--) {
        var key = props[fromRight ? length : ++index];
  
        if (iteratee(iterable[key], key, iterable) === false) {
          break;
        }
      }
  
      return object;
    };
  }
  
  module.exports = createBaseFor;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_defineProperty.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_defineProperty.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");
  
  var defineProperty = function () {
    try {
      var func = getNative(Object, 'defineProperty');
      func({}, '', {});
      return func;
    } catch (e) {}
  }();
  
  module.exports = defineProperty;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_equalArrays.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_equalArrays.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),
      arraySome = __webpack_require__(/*! ./_arraySome */ "./node_modules/lodash/_arraySome.js"),
      cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js");
  /** Used to compose bitmasks for value comparisons. */
  
  
  var COMPARE_PARTIAL_FLAG = 1,
      COMPARE_UNORDERED_FLAG = 2;
  /**
   * A specialized version of `baseIsEqualDeep` for arrays with support for
   * partial deep comparisons.
   *
   * @private
   * @param {Array} array The array to compare.
   * @param {Array} other The other array to compare.
   * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
   * @param {Function} customizer The function to customize comparisons.
   * @param {Function} equalFunc The function to determine equivalents of values.
   * @param {Object} stack Tracks traversed `array` and `other` objects.
   * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
   */
  
  function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
    var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
        arrLength = array.length,
        othLength = other.length;
  
    if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
      return false;
    } // Check that cyclic values are equal.
  
  
    var arrStacked = stack.get(array);
    var othStacked = stack.get(other);
  
    if (arrStacked && othStacked) {
      return arrStacked == other && othStacked == array;
    }
  
    var index = -1,
        result = true,
        seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;
    stack.set(array, other);
    stack.set(other, array); // Ignore non-index properties.
  
    while (++index < arrLength) {
      var arrValue = array[index],
          othValue = other[index];
  
      if (customizer) {
        var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
      }
  
      if (compared !== undefined) {
        if (compared) {
          continue;
        }
  
        result = false;
        break;
      } // Recursively compare arrays (susceptible to call stack limits).
  
  
      if (seen) {
        if (!arraySome(other, function (othValue, othIndex) {
          if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
            return seen.push(othIndex);
          }
        })) {
          result = false;
          break;
        }
      } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
        result = false;
        break;
      }
    }
  
    stack['delete'](array);
    stack['delete'](other);
    return result;
  }
  
  module.exports = equalArrays;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_equalByTag.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_equalByTag.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var _Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
      Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js"),
      eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
      equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
      mapToArray = __webpack_require__(/*! ./_mapToArray */ "./node_modules/lodash/_mapToArray.js"),
      setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
  /** Used to compose bitmasks for value comparisons. */
  
  
  var COMPARE_PARTIAL_FLAG = 1,
      COMPARE_UNORDERED_FLAG = 2;
  /** `Object#toString` result references. */
  
  var boolTag = '[object Boolean]',
      dateTag = '[object Date]',
      errorTag = '[object Error]',
      mapTag = '[object Map]',
      numberTag = '[object Number]',
      regexpTag = '[object RegExp]',
      setTag = '[object Set]',
      stringTag = '[object String]',
      symbolTag = '[object Symbol]';
  var arrayBufferTag = '[object ArrayBuffer]',
      dataViewTag = '[object DataView]';
  /** Used to convert symbols to primitives and strings. */
  
  var symbolProto = _Symbol ? _Symbol.prototype : undefined,
      symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
  /**
   * A specialized version of `baseIsEqualDeep` for comparing objects of
   * the same `toStringTag`.
   *
   * **Note:** This function only supports comparing values with tags of
   * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
   *
   * @private
   * @param {Object} object The object to compare.
   * @param {Object} other The other object to compare.
   * @param {string} tag The `toStringTag` of the objects to compare.
   * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
   * @param {Function} customizer The function to customize comparisons.
   * @param {Function} equalFunc The function to determine equivalents of values.
   * @param {Object} stack Tracks traversed `object` and `other` objects.
   * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
   */
  
  function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
    switch (tag) {
      case dataViewTag:
        if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
          return false;
        }
  
        object = object.buffer;
        other = other.buffer;
  
      case arrayBufferTag:
        if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
          return false;
        }
  
        return true;
  
      case boolTag:
      case dateTag:
      case numberTag:
        // Coerce booleans to `1` or `0` and dates to milliseconds.
        // Invalid dates are coerced to `NaN`.
        return eq(+object, +other);
  
      case errorTag:
        return object.name == other.name && object.message == other.message;
  
      case regexpTag:
      case stringTag:
        // Coerce regexes to strings and treat strings, primitives and objects,
        // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
        // for more details.
        return object == other + '';
  
      case mapTag:
        var convert = mapToArray;
  
      case setTag:
        var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
        convert || (convert = setToArray);
  
        if (object.size != other.size && !isPartial) {
          return false;
        } // Assume cyclic values are equal.
  
  
        var stacked = stack.get(object);
  
        if (stacked) {
          return stacked == other;
        }
  
        bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).
  
        stack.set(object, other);
        var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
        stack['delete'](object);
        return result;
  
      case symbolTag:
        if (symbolValueOf) {
          return symbolValueOf.call(object) == symbolValueOf.call(other);
        }
  
    }
  
    return false;
  }
  
  module.exports = equalByTag;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_equalObjects.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_equalObjects.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js");
  /** Used to compose bitmasks for value comparisons. */
  
  
  var COMPARE_PARTIAL_FLAG = 1;
  /** Used for built-in method references. */
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * A specialized version of `baseIsEqualDeep` for objects with support for
   * partial deep comparisons.
   *
   * @private
   * @param {Object} object The object to compare.
   * @param {Object} other The other object to compare.
   * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
   * @param {Function} customizer The function to customize comparisons.
   * @param {Function} equalFunc The function to determine equivalents of values.
   * @param {Object} stack Tracks traversed `object` and `other` objects.
   * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
   */
  
  function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
    var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
        objProps = getAllKeys(object),
        objLength = objProps.length,
        othProps = getAllKeys(other),
        othLength = othProps.length;
  
    if (objLength != othLength && !isPartial) {
      return false;
    }
  
    var index = objLength;
  
    while (index--) {
      var key = objProps[index];
  
      if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
        return false;
      }
    } // Check that cyclic values are equal.
  
  
    var objStacked = stack.get(object);
    var othStacked = stack.get(other);
  
    if (objStacked && othStacked) {
      return objStacked == other && othStacked == object;
    }
  
    var result = true;
    stack.set(object, other);
    stack.set(other, object);
    var skipCtor = isPartial;
  
    while (++index < objLength) {
      key = objProps[index];
      var objValue = object[key],
          othValue = other[key];
  
      if (customizer) {
        var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
      } // Recursively compare objects (susceptible to call stack limits).
  
  
      if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
        result = false;
        break;
      }
  
      skipCtor || (skipCtor = key == 'constructor');
    }
  
    if (result && !skipCtor) {
      var objCtor = object.constructor,
          othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.
  
      if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {
        result = false;
      }
    }
  
    stack['delete'](object);
    stack['delete'](other);
    return result;
  }
  
  module.exports = equalObjects;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_freeGlobal.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_freeGlobal.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /** Detect free variable `global` from Node.js. */
  var freeGlobal = (typeof __webpack_require__.g === "undefined" ? "undefined" : _typeof(__webpack_require__.g)) == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
  module.exports = freeGlobal;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getAllKeys.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_getAllKeys.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
      getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
      keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
  /**
   * Creates an array of own enumerable property names and symbols of `object`.
   *
   * @private
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names and symbols.
   */
  
  
  function getAllKeys(object) {
    return baseGetAllKeys(object, keys, getSymbols);
  }
  
  module.exports = getAllKeys;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getMapData.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_getMapData.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./node_modules/lodash/_isKeyable.js");
  /**
   * Gets the data for `map`.
   *
   * @private
   * @param {Object} map The map to query.
   * @param {string} key The reference key.
   * @returns {*} Returns the map data.
   */
  
  
  function getMapData(map, key) {
    var data = map.__data__;
    return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
  }
  
  module.exports = getMapData;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getNative.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_getNative.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/lodash/_baseIsNative.js"),
      getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/lodash/_getValue.js");
  /**
   * Gets the native function at `key` of `object`.
   *
   * @private
   * @param {Object} object The object to query.
   * @param {string} key The key of the method to get.
   * @returns {*} Returns the function if it's native, else `undefined`.
   */
  
  
  function getNative(object, key) {
    var value = getValue(object, key);
    return baseIsNative(value) ? value : undefined;
  }
  
  module.exports = getNative;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getPrototype.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_getPrototype.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");
  /** Built-in value references. */
  
  
  var getPrototype = overArg(Object.getPrototypeOf, Object);
  module.exports = getPrototype;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getRawTag.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_getRawTag.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var _Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * Used to resolve the
   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
   * of values.
   */
  
  var nativeObjectToString = objectProto.toString;
  /** Built-in value references. */
  
  var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;
  /**
   * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
   *
   * @private
   * @param {*} value The value to query.
   * @returns {string} Returns the raw `toStringTag`.
   */
  
  function getRawTag(value) {
    var isOwn = hasOwnProperty.call(value, symToStringTag),
        tag = value[symToStringTag];
  
    try {
      value[symToStringTag] = undefined;
      var unmasked = true;
    } catch (e) {}
  
    var result = nativeObjectToString.call(value);
  
    if (unmasked) {
      if (isOwn) {
        value[symToStringTag] = tag;
      } else {
        delete value[symToStringTag];
      }
    }
  
    return result;
  }
  
  module.exports = getRawTag;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getSymbols.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_getSymbols.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),
      stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Built-in value references. */
  
  var propertyIsEnumerable = objectProto.propertyIsEnumerable;
  /* Built-in method references for those with the same name as other `lodash` methods. */
  
  var nativeGetSymbols = Object.getOwnPropertySymbols;
  /**
   * Creates an array of the own enumerable symbols of `object`.
   *
   * @private
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of symbols.
   */
  
  var getSymbols = !nativeGetSymbols ? stubArray : function (object) {
    if (object == null) {
      return [];
    }
  
    object = Object(object);
    return arrayFilter(nativeGetSymbols(object), function (symbol) {
      return propertyIsEnumerable.call(object, symbol);
    });
  };
  module.exports = getSymbols;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getTag.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/_getTag.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var DataView = __webpack_require__(/*! ./_DataView */ "./node_modules/lodash/_DataView.js"),
      Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
      Promise = __webpack_require__(/*! ./_Promise */ "./node_modules/lodash/_Promise.js"),
      Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"),
      WeakMap = __webpack_require__(/*! ./_WeakMap */ "./node_modules/lodash/_WeakMap.js"),
      baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
      toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");
  /** `Object#toString` result references. */
  
  
  var mapTag = '[object Map]',
      objectTag = '[object Object]',
      promiseTag = '[object Promise]',
      setTag = '[object Set]',
      weakMapTag = '[object WeakMap]';
  var dataViewTag = '[object DataView]';
  /** Used to detect maps, sets, and weakmaps. */
  
  var dataViewCtorString = toSource(DataView),
      mapCtorString = toSource(Map),
      promiseCtorString = toSource(Promise),
      setCtorString = toSource(Set),
      weakMapCtorString = toSource(WeakMap);
  /**
   * Gets the `toStringTag` of `value`.
   *
   * @private
   * @param {*} value The value to query.
   * @returns {string} Returns the `toStringTag`.
   */
  
  var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
  
  if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {
    getTag = function getTag(value) {
      var result = baseGetTag(value),
          Ctor = result == objectTag ? value.constructor : undefined,
          ctorString = Ctor ? toSource(Ctor) : '';
  
      if (ctorString) {
        switch (ctorString) {
          case dataViewCtorString:
            return dataViewTag;
  
          case mapCtorString:
            return mapTag;
  
          case promiseCtorString:
            return promiseTag;
  
          case setCtorString:
            return setTag;
  
          case weakMapCtorString:
            return weakMapTag;
        }
      }
  
      return result;
    };
  }
  
  module.exports = getTag;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getValue.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_getValue.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /**
   * Gets the value at `key` of `object`.
   *
   * @private
   * @param {Object} [object] The object to query.
   * @param {string} key The key of the property to get.
   * @returns {*} Returns the property value.
   */
  function getValue(object, key) {
    return object == null ? undefined : object[key];
  }
  
  module.exports = getValue;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashClear.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_hashClear.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
  /**
   * Removes all key-value entries from the hash.
   *
   * @private
   * @name clear
   * @memberOf Hash
   */
  
  
  function hashClear() {
    this.__data__ = nativeCreate ? nativeCreate(null) : {};
    this.size = 0;
  }
  
  module.exports = hashClear;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashDelete.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_hashDelete.js ***!
    \********************************************/
  /***/ ((module) => {
  
  /**
   * Removes `key` and its value from the hash.
   *
   * @private
   * @name delete
   * @memberOf Hash
   * @param {Object} hash The hash to modify.
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  function hashDelete(key) {
    var result = this.has(key) && delete this.__data__[key];
    this.size -= result ? 1 : 0;
    return result;
  }
  
  module.exports = hashDelete;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashGet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hashGet.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
  /** Used to stand-in for `undefined` hash values. */
  
  
  var HASH_UNDEFINED = '__lodash_hash_undefined__';
  /** Used for built-in method references. */
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * Gets the hash value for `key`.
   *
   * @private
   * @name get
   * @memberOf Hash
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  
  function hashGet(key) {
    var data = this.__data__;
  
    if (nativeCreate) {
      var result = data[key];
      return result === HASH_UNDEFINED ? undefined : result;
    }
  
    return hasOwnProperty.call(data, key) ? data[key] : undefined;
  }
  
  module.exports = hashGet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashHas.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hashHas.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /**
   * Checks if a hash value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf Hash
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  
  function hashHas(key) {
    var data = this.__data__;
    return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
  }
  
  module.exports = hashHas;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashSet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hashSet.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
  /** Used to stand-in for `undefined` hash values. */
  
  
  var HASH_UNDEFINED = '__lodash_hash_undefined__';
  /**
   * Sets the hash `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf Hash
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the hash instance.
   */
  
  function hashSet(key, value) {
    var data = this.__data__;
    this.size += this.has(key) ? 0 : 1;
    data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;
    return this;
  }
  
  module.exports = hashSet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_initCloneObject.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_initCloneObject.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),
      getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
      isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js");
  /**
   * Initializes an object clone.
   *
   * @private
   * @param {Object} object The object to clone.
   * @returns {Object} Returns the initialized clone.
   */
  
  
  function initCloneObject(object) {
    return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
  }
  
  module.exports = initCloneObject;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isIndex.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_isIndex.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /** Used as references for various `Number` constants. */
  var MAX_SAFE_INTEGER = 9007199254740991;
  /** Used to detect unsigned integer values. */
  
  var reIsUint = /^(?:0|[1-9]\d*)$/;
  /**
   * Checks if `value` is a valid array-like index.
   *
   * @private
   * @param {*} value The value to check.
   * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
   * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
   */
  
  function isIndex(value, length) {
    var type = _typeof(value);
  
    length = length == null ? MAX_SAFE_INTEGER : length;
    return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
  }
  
  module.exports = isIndex;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isIterateeCall.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_isIterateeCall.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
      isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
      isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
      isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
  /**
   * Checks if the given arguments are from an iteratee call.
   *
   * @private
   * @param {*} value The potential iteratee value argument.
   * @param {*} index The potential iteratee index or key argument.
   * @param {*} object The potential iteratee object argument.
   * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
   *  else `false`.
   */
  
  
  function isIterateeCall(value, index, object) {
    if (!isObject(object)) {
      return false;
    }
  
    var type = _typeof(index);
  
    if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {
      return eq(object[index], value);
    }
  
    return false;
  }
  
  module.exports = isIterateeCall;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isKeyable.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_isKeyable.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /**
   * Checks if `value` is suitable for use as unique object key.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
   */
  function isKeyable(value) {
    var type = _typeof(value);
  
    return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;
  }
  
  module.exports = isKeyable;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isMasked.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_isMasked.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./node_modules/lodash/_coreJsData.js");
  /** Used to detect methods masquerading as native. */
  
  
  var maskSrcKey = function () {
    var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
    return uid ? 'Symbol(src)_1.' + uid : '';
  }();
  /**
   * Checks if `func` has its source masked.
   *
   * @private
   * @param {Function} func The function to check.
   * @returns {boolean} Returns `true` if `func` is masked, else `false`.
   */
  
  
  function isMasked(func) {
    return !!maskSrcKey && maskSrcKey in func;
  }
  
  module.exports = isMasked;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isPrototype.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_isPrototype.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  /** Used for built-in method references. */
  var objectProto = Object.prototype;
  /**
   * Checks if `value` is likely a prototype object.
   *
   * @private
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
   */
  
  function isPrototype(value) {
    var Ctor = value && value.constructor,
        proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
    return value === proto;
  }
  
  module.exports = isPrototype;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheClear.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_listCacheClear.js ***!
    \************************************************/
  /***/ ((module) => {
  
  /**
   * Removes all key-value entries from the list cache.
   *
   * @private
   * @name clear
   * @memberOf ListCache
   */
  function listCacheClear() {
    this.__data__ = [];
    this.size = 0;
  }
  
  module.exports = listCacheClear;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheDelete.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_listCacheDelete.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
  /** Used for built-in method references. */
  
  
  var arrayProto = Array.prototype;
  /** Built-in value references. */
  
  var splice = arrayProto.splice;
  /**
   * Removes `key` and its value from the list cache.
   *
   * @private
   * @name delete
   * @memberOf ListCache
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  
  function listCacheDelete(key) {
    var data = this.__data__,
        index = assocIndexOf(data, key);
  
    if (index < 0) {
      return false;
    }
  
    var lastIndex = data.length - 1;
  
    if (index == lastIndex) {
      data.pop();
    } else {
      splice.call(data, index, 1);
    }
  
    --this.size;
    return true;
  }
  
  module.exports = listCacheDelete;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheGet.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_listCacheGet.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
  /**
   * Gets the list cache value for `key`.
   *
   * @private
   * @name get
   * @memberOf ListCache
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  
  
  function listCacheGet(key) {
    var data = this.__data__,
        index = assocIndexOf(data, key);
    return index < 0 ? undefined : data[index][1];
  }
  
  module.exports = listCacheGet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheHas.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_listCacheHas.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
  /**
   * Checks if a list cache value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf ListCache
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  
  
  function listCacheHas(key) {
    return assocIndexOf(this.__data__, key) > -1;
  }
  
  module.exports = listCacheHas;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheSet.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_listCacheSet.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
  /**
   * Sets the list cache `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf ListCache
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the list cache instance.
   */
  
  
  function listCacheSet(key, value) {
    var data = this.__data__,
        index = assocIndexOf(data, key);
  
    if (index < 0) {
      ++this.size;
      data.push([key, value]);
    } else {
      data[index][1] = value;
    }
  
    return this;
  }
  
  module.exports = listCacheSet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheClear.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_mapCacheClear.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var Hash = __webpack_require__(/*! ./_Hash */ "./node_modules/lodash/_Hash.js"),
      ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
      Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js");
  /**
   * Removes all key-value entries from the map.
   *
   * @private
   * @name clear
   * @memberOf MapCache
   */
  
  
  function mapCacheClear() {
    this.size = 0;
    this.__data__ = {
      'hash': new Hash(),
      'map': new (Map || ListCache)(),
      'string': new Hash()
    };
  }
  
  module.exports = mapCacheClear;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheDelete.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_mapCacheDelete.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
  /**
   * Removes `key` and its value from the map.
   *
   * @private
   * @name delete
   * @memberOf MapCache
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  
  
  function mapCacheDelete(key) {
    var result = getMapData(this, key)['delete'](key);
    this.size -= result ? 1 : 0;
    return result;
  }
  
  module.exports = mapCacheDelete;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheGet.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_mapCacheGet.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
  /**
   * Gets the map value for `key`.
   *
   * @private
   * @name get
   * @memberOf MapCache
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  
  
  function mapCacheGet(key) {
    return getMapData(this, key).get(key);
  }
  
  module.exports = mapCacheGet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheHas.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_mapCacheHas.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
  /**
   * Checks if a map value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf MapCache
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  
  
  function mapCacheHas(key) {
    return getMapData(this, key).has(key);
  }
  
  module.exports = mapCacheHas;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheSet.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_mapCacheSet.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
  /**
   * Sets the map `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf MapCache
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the map cache instance.
   */
  
  
  function mapCacheSet(key, value) {
    var data = getMapData(this, key),
        size = data.size;
    data.set(key, value);
    this.size += data.size == size ? 0 : 1;
    return this;
  }
  
  module.exports = mapCacheSet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapToArray.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_mapToArray.js ***!
    \********************************************/
  /***/ ((module) => {
  
  /**
   * Converts `map` to its key-value pairs.
   *
   * @private
   * @param {Object} map The map to convert.
   * @returns {Array} Returns the key-value pairs.
   */
  function mapToArray(map) {
    var index = -1,
        result = Array(map.size);
    map.forEach(function (value, key) {
      result[++index] = [key, value];
    });
    return result;
  }
  
  module.exports = mapToArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nativeCreate.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_nativeCreate.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");
  /* Built-in method references that are verified to be native. */
  
  
  var nativeCreate = getNative(Object, 'create');
  module.exports = nativeCreate;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nativeKeys.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_nativeKeys.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");
  /* Built-in method references for those with the same name as other `lodash` methods. */
  
  
  var nativeKeys = overArg(Object.keys, Object);
  module.exports = nativeKeys;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nativeKeysIn.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_nativeKeysIn.js ***!
    \**********************************************/
  /***/ ((module) => {
  
  /**
   * This function is like
   * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
   * except that it includes inherited enumerable properties.
   *
   * @private
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   */
  function nativeKeysIn(object) {
    var result = [];
  
    if (object != null) {
      for (var key in Object(object)) {
        result.push(key);
      }
    }
  
    return result;
  }
  
  module.exports = nativeKeysIn;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nodeUtil.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_nodeUtil.js ***!
    \******************************************/
  /***/ ((module, exports, __webpack_require__) => {
  
  /* module decorator */ module = __webpack_require__.nmd(module);
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
  /** Detect free variable `exports`. */
  
  
  var freeExports = ( false ? 0 : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;
  /** Detect free variable `module`. */
  
  var freeModule = freeExports && ( false ? 0 : _typeof(module)) == 'object' && module && !module.nodeType && module;
  /** Detect the popular CommonJS extension `module.exports`. */
  
  var moduleExports = freeModule && freeModule.exports === freeExports;
  /** Detect free variable `process` from Node.js. */
  
  var freeProcess = moduleExports && freeGlobal.process;
  /** Used to access faster Node.js helpers. */
  
  var nodeUtil = function () {
    try {
      // Use `util.types` for Node.js 10+.
      var types = freeModule && freeModule.require && freeModule.require('util').types;
  
      if (types) {
        return types;
      } // Legacy `process.binding('util')` for Node.js < 10.
  
  
      return freeProcess && freeProcess.binding && freeProcess.binding('util');
    } catch (e) {}
  }();
  
  module.exports = nodeUtil;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_objectToString.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_objectToString.js ***!
    \************************************************/
  /***/ ((module) => {
  
  /** Used for built-in method references. */
  var objectProto = Object.prototype;
  /**
   * Used to resolve the
   * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
   * of values.
   */
  
  var nativeObjectToString = objectProto.toString;
  /**
   * Converts `value` to a string using `Object.prototype.toString`.
   *
   * @private
   * @param {*} value The value to convert.
   * @returns {string} Returns the converted string.
   */
  
  function objectToString(value) {
    return nativeObjectToString.call(value);
  }
  
  module.exports = objectToString;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_overArg.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_overArg.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  /**
   * Creates a unary function that invokes `func` with its argument transformed.
   *
   * @private
   * @param {Function} func The function to wrap.
   * @param {Function} transform The argument transform.
   * @returns {Function} Returns the new function.
   */
  function overArg(func, transform) {
    return function (arg) {
      return func(transform(arg));
    };
  }
  
  module.exports = overArg;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_overRest.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_overRest.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var apply = __webpack_require__(/*! ./_apply */ "./node_modules/lodash/_apply.js");
  /* Built-in method references for those with the same name as other `lodash` methods. */
  
  
  var nativeMax = Math.max;
  /**
   * A specialized version of `baseRest` which transforms the rest array.
   *
   * @private
   * @param {Function} func The function to apply a rest parameter to.
   * @param {number} [start=func.length-1] The start position of the rest parameter.
   * @param {Function} transform The rest array transform.
   * @returns {Function} Returns the new function.
   */
  
  function overRest(func, start, transform) {
    start = nativeMax(start === undefined ? func.length - 1 : start, 0);
    return function () {
      var args = arguments,
          index = -1,
          length = nativeMax(args.length - start, 0),
          array = Array(length);
  
      while (++index < length) {
        array[index] = args[start + index];
      }
  
      index = -1;
      var otherArgs = Array(start + 1);
  
      while (++index < start) {
        otherArgs[index] = args[index];
      }
  
      otherArgs[start] = transform(array);
      return apply(func, this, otherArgs);
    };
  }
  
  module.exports = overRest;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_root.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/_root.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
  /** Detect free variable `self`. */
  
  
  var freeSelf = (typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self && self.Object === Object && self;
  /** Used as a reference to the global object. */
  
  var root = freeGlobal || freeSelf || Function('return this')();
  module.exports = root;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_safeGet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_safeGet.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  /**
   * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
   *
   * @private
   * @param {Object} object The object to query.
   * @param {string} key The key of the property to get.
   * @returns {*} Returns the property value.
   */
  function safeGet(object, key) {
    if (key === 'constructor' && typeof object[key] === 'function') {
      return;
    }
  
    if (key == '__proto__') {
      return;
    }
  
    return object[key];
  }
  
  module.exports = safeGet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setCacheAdd.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_setCacheAdd.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  /** Used to stand-in for `undefined` hash values. */
  var HASH_UNDEFINED = '__lodash_hash_undefined__';
  /**
   * Adds `value` to the array cache.
   *
   * @private
   * @name add
   * @memberOf SetCache
   * @alias push
   * @param {*} value The value to cache.
   * @returns {Object} Returns the cache instance.
   */
  
  function setCacheAdd(value) {
    this.__data__.set(value, HASH_UNDEFINED);
  
    return this;
  }
  
  module.exports = setCacheAdd;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setCacheHas.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_setCacheHas.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  /**
   * Checks if `value` is in the array cache.
   *
   * @private
   * @name has
   * @memberOf SetCache
   * @param {*} value The value to search for.
   * @returns {number} Returns `true` if `value` is found, else `false`.
   */
  function setCacheHas(value) {
    return this.__data__.has(value);
  }
  
  module.exports = setCacheHas;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setToArray.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_setToArray.js ***!
    \********************************************/
  /***/ ((module) => {
  
  /**
   * Converts `set` to an array of its values.
   *
   * @private
   * @param {Object} set The set to convert.
   * @returns {Array} Returns the values.
   */
  function setToArray(set) {
    var index = -1,
        result = Array(set.size);
    set.forEach(function (value) {
      result[++index] = value;
    });
    return result;
  }
  
  module.exports = setToArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setToString.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_setToString.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ "./node_modules/lodash/_baseSetToString.js"),
      shortOut = __webpack_require__(/*! ./_shortOut */ "./node_modules/lodash/_shortOut.js");
  /**
   * Sets the `toString` method of `func` to return `string`.
   *
   * @private
   * @param {Function} func The function to modify.
   * @param {Function} string The `toString` result.
   * @returns {Function} Returns `func`.
   */
  
  
  var setToString = shortOut(baseSetToString);
  module.exports = setToString;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_shortOut.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_shortOut.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /** Used to detect hot functions by number of calls within a span of milliseconds. */
  var HOT_COUNT = 800,
      HOT_SPAN = 16;
  /* Built-in method references for those with the same name as other `lodash` methods. */
  
  var nativeNow = Date.now;
  /**
   * Creates a function that'll short out and invoke `identity` instead
   * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
   * milliseconds.
   *
   * @private
   * @param {Function} func The function to restrict.
   * @returns {Function} Returns the new shortable function.
   */
  
  function shortOut(func) {
    var count = 0,
        lastCalled = 0;
    return function () {
      var stamp = nativeNow(),
          remaining = HOT_SPAN - (stamp - lastCalled);
      lastCalled = stamp;
  
      if (remaining > 0) {
        if (++count >= HOT_COUNT) {
          return arguments[0];
        }
      } else {
        count = 0;
      }
  
      return func.apply(undefined, arguments);
    };
  }
  
  module.exports = shortOut;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackClear.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_stackClear.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js");
  /**
   * Removes all key-value entries from the stack.
   *
   * @private
   * @name clear
   * @memberOf Stack
   */
  
  
  function stackClear() {
    this.__data__ = new ListCache();
    this.size = 0;
  }
  
  module.exports = stackClear;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackDelete.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_stackDelete.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  /**
   * Removes `key` and its value from the stack.
   *
   * @private
   * @name delete
   * @memberOf Stack
   * @param {string} key The key of the value to remove.
   * @returns {boolean} Returns `true` if the entry was removed, else `false`.
   */
  function stackDelete(key) {
    var data = this.__data__,
        result = data['delete'](key);
    this.size = data.size;
    return result;
  }
  
  module.exports = stackDelete;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackGet.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_stackGet.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /**
   * Gets the stack value for `key`.
   *
   * @private
   * @name get
   * @memberOf Stack
   * @param {string} key The key of the value to get.
   * @returns {*} Returns the entry value.
   */
  function stackGet(key) {
    return this.__data__.get(key);
  }
  
  module.exports = stackGet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackHas.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_stackHas.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /**
   * Checks if a stack value for `key` exists.
   *
   * @private
   * @name has
   * @memberOf Stack
   * @param {string} key The key of the entry to check.
   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
   */
  function stackHas(key) {
    return this.__data__.has(key);
  }
  
  module.exports = stackHas;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackSet.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_stackSet.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
      Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
      MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");
  /** Used as the size to enable large array optimizations. */
  
  
  var LARGE_ARRAY_SIZE = 200;
  /**
   * Sets the stack `key` to `value`.
   *
   * @private
   * @name set
   * @memberOf Stack
   * @param {string} key The key of the value to set.
   * @param {*} value The value to set.
   * @returns {Object} Returns the stack cache instance.
   */
  
  function stackSet(key, value) {
    var data = this.__data__;
  
    if (data instanceof ListCache) {
      var pairs = data.__data__;
  
      if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {
        pairs.push([key, value]);
        this.size = ++data.size;
        return this;
      }
  
      data = this.__data__ = new MapCache(pairs);
    }
  
    data.set(key, value);
    this.size = data.size;
    return this;
  }
  
  module.exports = stackSet;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_toSource.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_toSource.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /** Used for built-in method references. */
  var funcProto = Function.prototype;
  /** Used to resolve the decompiled source of functions. */
  
  var funcToString = funcProto.toString;
  /**
   * Converts `func` to its source code.
   *
   * @private
   * @param {Function} func The function to convert.
   * @returns {string} Returns the source code.
   */
  
  function toSource(func) {
    if (func != null) {
      try {
        return funcToString.call(func);
      } catch (e) {}
  
      try {
        return func + '';
      } catch (e) {}
    }
  
    return '';
  }
  
  module.exports = toSource;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/constant.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/constant.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  /**
   * Creates a function that returns `value`.
   *
   * @static
   * @memberOf _
   * @since 2.4.0
   * @category Util
   * @param {*} value The value to return from the new function.
   * @returns {Function} Returns the new constant function.
   * @example
   *
   * var objects = _.times(2, _.constant({ 'a': 1 }));
   *
   * console.log(objects);
   * // => [{ 'a': 1 }, { 'a': 1 }]
   *
   * console.log(objects[0] === objects[1]);
   * // => true
   */
  function constant(value) {
    return function () {
      return value;
    };
  }
  
  module.exports = constant;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/eq.js":
  /*!***********************************!*\
    !*** ./node_modules/lodash/eq.js ***!
    \***********************************/
  /***/ ((module) => {
  
  /**
   * Performs a
   * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
   * comparison between two values to determine if they are equivalent.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to compare.
   * @param {*} other The other value to compare.
   * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
   * @example
   *
   * var object = { 'a': 1 };
   * var other = { 'a': 1 };
   *
   * _.eq(object, object);
   * // => true
   *
   * _.eq(object, other);
   * // => false
   *
   * _.eq('a', 'a');
   * // => true
   *
   * _.eq('a', Object('a'));
   * // => false
   *
   * _.eq(NaN, NaN);
   * // => true
   */
  function eq(value, other) {
    return value === other || value !== value && other !== other;
  }
  
  module.exports = eq;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/identity.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/identity.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  /**
   * This method returns the first argument it receives.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Util
   * @param {*} value Any value.
   * @returns {*} Returns `value`.
   * @example
   *
   * var object = { 'a': 1 };
   *
   * console.log(_.identity(object) === object);
   * // => true
   */
  function identity(value) {
    return value;
  }
  
  module.exports = identity;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArguments.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/isArguments.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ "./node_modules/lodash/_baseIsArguments.js"),
      isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
  /** Used for built-in method references. */
  
  
  var objectProto = Object.prototype;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /** Built-in value references. */
  
  var propertyIsEnumerable = objectProto.propertyIsEnumerable;
  /**
   * Checks if `value` is likely an `arguments` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an `arguments` object,
   *  else `false`.
   * @example
   *
   * _.isArguments(function() { return arguments; }());
   * // => true
   *
   * _.isArguments([1, 2, 3]);
   * // => false
   */
  
  var isArguments = baseIsArguments(function () {
    return arguments;
  }()) ? baseIsArguments : function (value) {
    return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
  };
  module.exports = isArguments;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArray.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/isArray.js ***!
    \****************************************/
  /***/ ((module) => {
  
  /**
   * Checks if `value` is classified as an `Array` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an array, else `false`.
   * @example
   *
   * _.isArray([1, 2, 3]);
   * // => true
   *
   * _.isArray(document.body.children);
   * // => false
   *
   * _.isArray('abc');
   * // => false
   *
   * _.isArray(_.noop);
   * // => false
   */
  var isArray = Array.isArray;
  module.exports = isArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArrayLike.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/isArrayLike.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
      isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js");
  /**
   * Checks if `value` is array-like. A value is considered array-like if it's
   * not a function and has a `value.length` that's an integer greater than or
   * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
   * @example
   *
   * _.isArrayLike([1, 2, 3]);
   * // => true
   *
   * _.isArrayLike(document.body.children);
   * // => true
   *
   * _.isArrayLike('abc');
   * // => true
   *
   * _.isArrayLike(_.noop);
   * // => false
   */
  
  
  function isArrayLike(value) {
    return value != null && isLength(value.length) && !isFunction(value);
  }
  
  module.exports = isArrayLike;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArrayLikeObject.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/isArrayLikeObject.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
      isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
  /**
   * This method is like `_.isArrayLike` except that it also checks if `value`
   * is an object.
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an array-like object,
   *  else `false`.
   * @example
   *
   * _.isArrayLikeObject([1, 2, 3]);
   * // => true
   *
   * _.isArrayLikeObject(document.body.children);
   * // => true
   *
   * _.isArrayLikeObject('abc');
   * // => false
   *
   * _.isArrayLikeObject(_.noop);
   * // => false
   */
  
  
  function isArrayLikeObject(value) {
    return isObjectLike(value) && isArrayLike(value);
  }
  
  module.exports = isArrayLikeObject;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isBuffer.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isBuffer.js ***!
    \*****************************************/
  /***/ ((module, exports, __webpack_require__) => {
  
  /* module decorator */ module = __webpack_require__.nmd(module);
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"),
      stubFalse = __webpack_require__(/*! ./stubFalse */ "./node_modules/lodash/stubFalse.js");
  /** Detect free variable `exports`. */
  
  
  var freeExports = ( false ? 0 : _typeof(exports)) == 'object' && exports && !exports.nodeType && exports;
  /** Detect free variable `module`. */
  
  var freeModule = freeExports && ( false ? 0 : _typeof(module)) == 'object' && module && !module.nodeType && module;
  /** Detect the popular CommonJS extension `module.exports`. */
  
  var moduleExports = freeModule && freeModule.exports === freeExports;
  /** Built-in value references. */
  
  var Buffer = moduleExports ? root.Buffer : undefined;
  /* Built-in method references for those with the same name as other `lodash` methods. */
  
  var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
  /**
   * Checks if `value` is a buffer.
   *
   * @static
   * @memberOf _
   * @since 4.3.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
   * @example
   *
   * _.isBuffer(new Buffer(2));
   * // => true
   *
   * _.isBuffer(new Uint8Array(2));
   * // => false
   */
  
  var isBuffer = nativeIsBuffer || stubFalse;
  module.exports = isBuffer;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isEqual.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/isEqual.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js");
  /**
   * Performs a deep comparison between two values to determine if they are
   * equivalent.
   *
   * **Note:** This method supports comparing arrays, array buffers, booleans,
   * date objects, error objects, maps, numbers, `Object` objects, regexes,
   * sets, strings, symbols, and typed arrays. `Object` objects are compared
   * by their own, not inherited, enumerable properties. Functions and DOM
   * nodes are compared by strict equality, i.e. `===`.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to compare.
   * @param {*} other The other value to compare.
   * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
   * @example
   *
   * var object = { 'a': 1 };
   * var other = { 'a': 1 };
   *
   * _.isEqual(object, other);
   * // => true
   *
   * object === other;
   * // => false
   */
  
  
  function isEqual(value, other) {
    return baseIsEqual(value, other);
  }
  
  module.exports = isEqual;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isFunction.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/isFunction.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
      isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
  /** `Object#toString` result references. */
  
  
  var asyncTag = '[object AsyncFunction]',
      funcTag = '[object Function]',
      genTag = '[object GeneratorFunction]',
      proxyTag = '[object Proxy]';
  /**
   * Checks if `value` is classified as a `Function` object.
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a function, else `false`.
   * @example
   *
   * _.isFunction(_);
   * // => true
   *
   * _.isFunction(/abc/);
   * // => false
   */
  
  function isFunction(value) {
    if (!isObject(value)) {
      return false;
    } // The use of `Object#toString` avoids issues with the `typeof` operator
    // in Safari 9 which returns 'object' for typed arrays and other constructors.
  
  
    var tag = baseGetTag(value);
    return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
  }
  
  module.exports = isFunction;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isLength.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isLength.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  /** Used as references for various `Number` constants. */
  var MAX_SAFE_INTEGER = 9007199254740991;
  /**
   * Checks if `value` is a valid array-like length.
   *
   * **Note:** This method is loosely based on
   * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
   * @example
   *
   * _.isLength(3);
   * // => true
   *
   * _.isLength(Number.MIN_VALUE);
   * // => false
   *
   * _.isLength(Infinity);
   * // => false
   *
   * _.isLength('3');
   * // => false
   */
  
  function isLength(value) {
    return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
  }
  
  module.exports = isLength;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isObject.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isObject.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /**
   * Checks if `value` is the
   * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
   * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
   *
   * @static
   * @memberOf _
   * @since 0.1.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is an object, else `false`.
   * @example
   *
   * _.isObject({});
   * // => true
   *
   * _.isObject([1, 2, 3]);
   * // => true
   *
   * _.isObject(_.noop);
   * // => true
   *
   * _.isObject(null);
   * // => false
   */
  function isObject(value) {
    var type = _typeof(value);
  
    return value != null && (type == 'object' || type == 'function');
  }
  
  module.exports = isObject;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isObjectLike.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/isObjectLike.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
  
  /**
   * Checks if `value` is object-like. A value is object-like if it's not `null`
   * and has a `typeof` result of "object".
   *
   * @static
   * @memberOf _
   * @since 4.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
   * @example
   *
   * _.isObjectLike({});
   * // => true
   *
   * _.isObjectLike([1, 2, 3]);
   * // => true
   *
   * _.isObjectLike(_.noop);
   * // => false
   *
   * _.isObjectLike(null);
   * // => false
   */
  function isObjectLike(value) {
    return value != null && _typeof(value) == 'object';
  }
  
  module.exports = isObjectLike;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isPlainObject.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/isPlainObject.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
      getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
      isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
  /** `Object#toString` result references. */
  
  
  var objectTag = '[object Object]';
  /** Used for built-in method references. */
  
  var funcProto = Function.prototype,
      objectProto = Object.prototype;
  /** Used to resolve the decompiled source of functions. */
  
  var funcToString = funcProto.toString;
  /** Used to check objects for own properties. */
  
  var hasOwnProperty = objectProto.hasOwnProperty;
  /** Used to infer the `Object` constructor. */
  
  var objectCtorString = funcToString.call(Object);
  /**
   * Checks if `value` is a plain object, that is, an object created by the
   * `Object` constructor or one with a `[[Prototype]]` of `null`.
   *
   * @static
   * @memberOf _
   * @since 0.8.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
   * @example
   *
   * function Foo() {
   *   this.a = 1;
   * }
   *
   * _.isPlainObject(new Foo);
   * // => false
   *
   * _.isPlainObject([1, 2, 3]);
   * // => false
   *
   * _.isPlainObject({ 'x': 0, 'y': 0 });
   * // => true
   *
   * _.isPlainObject(Object.create(null));
   * // => true
   */
  
  function isPlainObject(value) {
    if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
      return false;
    }
  
    var proto = getPrototype(value);
  
    if (proto === null) {
      return true;
    }
  
    var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
    return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
  }
  
  module.exports = isPlainObject;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isTypedArray.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/isTypedArray.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./node_modules/lodash/_baseIsTypedArray.js"),
      baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
      nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
  /* Node.js helper references. */
  
  
  var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
  /**
   * Checks if `value` is classified as a typed array.
   *
   * @static
   * @memberOf _
   * @since 3.0.0
   * @category Lang
   * @param {*} value The value to check.
   * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
   * @example
   *
   * _.isTypedArray(new Uint8Array);
   * // => true
   *
   * _.isTypedArray([]);
   * // => false
   */
  
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
  module.exports = isTypedArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/keys.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/keys.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
      baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
      isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
  /**
   * Creates an array of the own enumerable property names of `object`.
   *
   * **Note:** Non-object values are coerced to objects. See the
   * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
   * for more details.
   *
   * @static
   * @since 0.1.0
   * @memberOf _
   * @category Object
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   * @example
   *
   * function Foo() {
   *   this.a = 1;
   *   this.b = 2;
   * }
   *
   * Foo.prototype.c = 3;
   *
   * _.keys(new Foo);
   * // => ['a', 'b'] (iteration order is not guaranteed)
   *
   * _.keys('hi');
   * // => ['0', '1']
   */
  
  
  function keys(object) {
    return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
  }
  
  module.exports = keys;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/keysIn.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/keysIn.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
      baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ "./node_modules/lodash/_baseKeysIn.js"),
      isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
  /**
   * Creates an array of the own and inherited enumerable property names of `object`.
   *
   * **Note:** Non-object values are coerced to objects.
   *
   * @static
   * @memberOf _
   * @since 3.0.0
   * @category Object
   * @param {Object} object The object to query.
   * @returns {Array} Returns the array of property names.
   * @example
   *
   * function Foo() {
   *   this.a = 1;
   *   this.b = 2;
   * }
   *
   * Foo.prototype.c = 3;
   *
   * _.keysIn(new Foo);
   * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
   */
  
  
  function keysIn(object) {
    return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
  }
  
  module.exports = keysIn;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/merge.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/merge.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var baseMerge = __webpack_require__(/*! ./_baseMerge */ "./node_modules/lodash/_baseMerge.js"),
      createAssigner = __webpack_require__(/*! ./_createAssigner */ "./node_modules/lodash/_createAssigner.js");
  /**
   * This method is like `_.assign` except that it recursively merges own and
   * inherited enumerable string keyed properties of source objects into the
   * destination object. Source properties that resolve to `undefined` are
   * skipped if a destination value exists. Array and plain object properties
   * are merged recursively. Other objects and value types are overridden by
   * assignment. Source objects are applied from left to right. Subsequent
   * sources overwrite property assignments of previous sources.
   *
   * **Note:** This method mutates `object`.
   *
   * @static
   * @memberOf _
   * @since 0.5.0
   * @category Object
   * @param {Object} object The destination object.
   * @param {...Object} [sources] The source objects.
   * @returns {Object} Returns `object`.
   * @example
   *
   * var object = {
   *   'a': [{ 'b': 2 }, { 'd': 4 }]
   * };
   *
   * var other = {
   *   'a': [{ 'c': 3 }, { 'e': 5 }]
   * };
   *
   * _.merge(object, other);
   * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
   */
  
  
  var merge = createAssigner(function (object, source, srcIndex) {
    baseMerge(object, source, srcIndex);
  });
  module.exports = merge;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/stubArray.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/stubArray.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /**
   * This method returns a new empty array.
   *
   * @static
   * @memberOf _
   * @since 4.13.0
   * @category Util
   * @returns {Array} Returns the new empty array.
   * @example
   *
   * var arrays = _.times(2, _.stubArray);
   *
   * console.log(arrays);
   * // => [[], []]
   *
   * console.log(arrays[0] === arrays[1]);
   * // => false
   */
  function stubArray() {
    return [];
  }
  
  module.exports = stubArray;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/stubFalse.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/stubFalse.js ***!
    \******************************************/
  /***/ ((module) => {
  
  /**
   * This method returns `false`.
   *
   * @static
   * @memberOf _
   * @since 4.13.0
   * @category Util
   * @returns {boolean} Returns `false`.
   * @example
   *
   * _.times(2, _.stubFalse);
   * // => [false, false]
   */
  function stubFalse() {
    return false;
  }
  
  module.exports = stubFalse;
  
  /***/ }),
  
  /***/ "./node_modules/lodash/toPlainObject.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/toPlainObject.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
      keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
  /**
   * Converts `value` to a plain object flattening inherited enumerable string
   * keyed properties of `value` to own properties of the plain object.
   *
   * @static
   * @memberOf _
   * @since 3.0.0
   * @category Lang
   * @param {*} value The value to convert.
   * @returns {Object} Returns the converted plain object.
   * @example
   *
   * function Foo() {
   *   this.b = 2;
   * }
   *
   * Foo.prototype.c = 3;
   *
   * _.assign({ 'a': 1 }, new Foo);
   * // => { 'a': 1, 'b': 2 }
   *
   * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
   * // => { 'a': 1, 'b': 2, 'c': 3 }
   */
  
  
  function toPlainObject(value) {
    return copyObject(value, keysIn(value));
  }
  
  module.exports = toPlainObject;
  
  /***/ }),
  
  /***/ "./src/buff.ts":
  /*!*********************!*\
    !*** ./src/buff.ts ***!
    \*********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "buff": () => (/* binding */ buff)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_3__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  /* harmony import */ var _synth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./synth */ "./src/synth.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56, _templateObject57, _templateObject58, _templateObject59, _templateObject60, _templateObject61, _templateObject62, _templateObject63, _templateObject64, _templateObject65, _templateObject66, _templateObject67, _templateObject68, _templateObject69, _templateObject70, _templateObject71, _templateObject72, _templateObject73, _templateObject74, _templateObject75, _templateObject76, _templateObject77, _templateObject78, _templateObject79, _templateObject80, _templateObject81, _templateObject82, _templateObject83, _templateObject84, _templateObject85, _templateObject86, _templateObject87, _templateObject88, _templateObject89, _templateObject90, _templateObject91, _templateObject92, _templateObject93, _templateObject94, _templateObject95, _templateObject96, _templateObject97, _templateObject98, _templateObject99, _templateObject100, _templateObject101;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  
  function potions() {
    // get dramatic range
    if (!(0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.getPropertyBoolean)('hasRange')) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureItem)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Dramatic\u2122 range"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Dramatic\u2122 range"]))));
    } // get scruptious reagents
  
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveSkill)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Advanced Saucecrafting"]))))) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Advanced Saucecrafting"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting tomato power, stat buff, and equaliser");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensurePotionEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Tomato Power"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["tomato juice of powerful power"]))));
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Mysticality"])))) {
      // grapefruit
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensurePotionEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Mystically Oiled"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["ointment of the occult"])))); // cherry
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensurePotionEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Expert Oiliness"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["oil of expertise"]))));
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Muscle"])))) {
      // lemon
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensurePotionEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Phorcefullness"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["philter of phorce"])))); // get a lime
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureMp)(50);
  
      if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Prevent Scurvy and Sobriety"]))))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Prevent Scurvy and Sobriety"]))));
      }
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensurePotionEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Stabilizing Oiliness"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["oil of stability"]))));
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["Moxie"])))) {}
  }
  
  function statGain() {
    // campsite
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["That's Just Cloud-Talk, Man"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('place.php?whichplace=campaway&action=campaway_sky');
    } // shower
  
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["Mysticality"])))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Inscrutable Gaze"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["Thaumodynamic"]))));
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Muscle"])))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["Muscle Unbound"]))));
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Moxie"])))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["So Fresh and So Clean"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["familiar scrapbook"])))); //ensureEffect($effect`substats.enh`); // save for meat buff
  }
  
  function familiarWeight() {
    // Plan is for these buffs to fall all the way through to item -> hot res -> nc -> fam weight.
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["Fidoxene"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["Billiards Belligerence"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Do I Know You From Somewhere?"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["Empathy"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Leash of Linguini"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["Blood Bond"]))));
  }
  
  function buffMainstat() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)(); // good for all mainstat
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["Favored by Lyle"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["Starry-Eyed"]))));
    if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.get)('_powerfulGloveBatteryPowerUsed') <= 95) (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["Triple-Sized"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["Feeling Excited"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["Big"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["Total Protonic Reversal"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral(["Broad-Spectrum Vaccine"])))); // spacegate
    // 10% - need to think about AT buffs
    // ensureEffect($effect`Stevedave's Shanty of Superiority`); 
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral(["Purity of Spirit"]))))) {
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral(["cold-filtered water"]))))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral(["cold-filtered water"]))));
      }
  
      ;
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral(["cold-filtered water"]))));
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral(["Mysticality"])))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral(["We're All Made of Starfish"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject48 || (_templateObject48 = _taggedTemplateLiteral(["Uncucumbered"])))); // boxing day care
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject49 || (_templateObject49 = _taggedTemplateLiteral(["The Magical Mojomuscular Melody"])))); // ensureEffect($effect`Quiet Judgement`); // already using facial expression
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject50 || (_templateObject50 = _taggedTemplateLiteral(["Glittering Eyelashes"]))));
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject51 || (_templateObject51 = _taggedTemplateLiteral(["Muscle"])))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject52 || (_templateObject52 = _taggedTemplateLiteral(["Lack of Body-Building"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject53 || (_templateObject53 = _taggedTemplateLiteral(["Muddled"])))); // boxing day care
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject54 || (_templateObject54 = _taggedTemplateLiteral(["Quiet Determination"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject55 || (_templateObject55 = _taggedTemplateLiteral(["Rage of the Reindeer"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject56 || (_templateObject56 = _taggedTemplateLiteral(["Go Get 'Em, Tiger!"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject57 || (_templateObject57 = _taggedTemplateLiteral([" Blessing of your favorite Bird"])))); // 200% mus
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject58 || (_templateObject58 = _taggedTemplateLiteral(["Moxie"])))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject59 || (_templateObject59 = _taggedTemplateLiteral(["Pomp & Circumsands"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject60 || (_templateObject60 = _taggedTemplateLiteral(["Ten out of Ten"])))); // boxing day care
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject61 || (_templateObject61 = _taggedTemplateLiteral(["Quiet Despersation"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject62 || (_templateObject62 = _taggedTemplateLiteral(["Disco Fever"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject63 || (_templateObject63 = _taggedTemplateLiteral(["Blubber Up"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject64 || (_templateObject64 = _taggedTemplateLiteral(["Butt-Rock Hair"]))));
    }
  }
  
  function otherBuffs() {
    // !get('_clanFortuneBuffUsed') && cliExecute('fortune buff item'); // save for garbo?
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject65 || (_templateObject65 = _taggedTemplateLiteral(["Astral Shell"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject66 || (_templateObject66 = _taggedTemplateLiteral(["Ghostly Shell"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject67 || (_templateObject67 = _taggedTemplateLiteral(["Feeling Peaceful"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject68 || (_templateObject68 = _taggedTemplateLiteral(["Polka of Plenty"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject69 || (_templateObject69 = _taggedTemplateLiteral(["items.enh"]))));
  }
  
  function monsterLevel() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject70 || (_templateObject70 = _taggedTemplateLiteral(["Drescher's Annoying Noise"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject71 || (_templateObject71 = _taggedTemplateLiteral(["Pride of the Puffin"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject72 || (_templateObject72 = _taggedTemplateLiteral(["Ur-Kel's Aria of Annoyance"]))));
  }
  
  function synthBuffs() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.tuneMoon)(); // need to have gnomad access
  
    (0,_synth__WEBPACK_IMPORTED_MODULE_2__.synth)("stats");
    (0,_synth__WEBPACK_IMPORTED_MODULE_2__.synth)("statgain");
  }
  
  function nepBuff() {
    // not using
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject73 || (_templateObject73 = _taggedTemplateLiteral(["Tomes of Opportunity"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting tomes of opportunity from NEP"); //      set('choiceAdventure1322', '2'); // Here to Party
  
      (0,libram__WEBPACK_IMPORTED_MODULE_3__.set)('choiceAdventure1324', '1'); // It Hasn't Ended, It's Just Paused; Head upstairs
  
      (0,libram__WEBPACK_IMPORTED_MODULE_3__.set)('choiceAdventure1325', '2'); // A Room With a View... Of a Bed; Read the tomes
      // if we haven't already adventured there get rid of the nc
  
      if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.containsText)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$location)(_templateObject74 || (_templateObject74 = _taggedTemplateLiteral(["The Neverending Party"]))).noncombatQueue, 'The Beginning of the Neverend')) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toUrl)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$location)(_templateObject75 || (_templateObject75 = _taggedTemplateLiteral(["The Neverending Party"])))));
  
        if (["food", "booze"].includes((0,libram__WEBPACK_IMPORTED_MODULE_3__.get)("_questPartyFairQuest"))) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Gerald/ine quest!", "blue");
        }
  
        if (["food", "booze"].includes((0,libram__WEBPACK_IMPORTED_MODULE_3__.get)("_questPartyFairQuest"))) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(1); // Accept quest
        } else {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(2); // Decline quest
        } //        adv1($location`The Neverending Party`, -1, '');
  
      }
  
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject76 || (_templateObject76 = _taggedTemplateLiteral(["Stench Jellied"]))))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.chew)(1, (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject77 || (_templateObject77 = _taggedTemplateLiteral(["stench jelly"]))));
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$location)(_templateObject78 || (_templateObject78 = _taggedTemplateLiteral(["The Neverending Party"])))); // desired nc
    }
  }
  
  function statGainUniform() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_3__.$stat)(_templateObject79 || (_templateObject79 = _taggedTemplateLiteral(["Muscle"]))) && (0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject80 || (_templateObject80 = _taggedTemplateLiteral(["LOV Eardigan"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject81 || (_templateObject81 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject82 || (_templateObject82 = _taggedTemplateLiteral(["LOV Eardigan"])))); // statgain
    }
  }
  
  function bastille() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("bastille mainstat");
    /*
    if(myPrimestat() === $stat`Mysticality`){
      // +50% mys and +50% spell damage
      cliExecute("bastille myst");
    }
    else if (myPrimestat() === $stat`Muscle`){
      // +50% mus and +8 familiar weight
      cliExecute("bastille muscle");
    }
    else if (myPrimestat() === $stat`Moxie`){
      // +50% mox and (useless?) 25% item
       cliExecute("bastille moxie");
    }
    */
  }
  
  function tenPercent() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject83 || (_templateObject83 = _taggedTemplateLiteral(["a ten-percent bonus"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject84 || (_templateObject84 = _taggedTemplateLiteral(["a ten-percent bonus"]))));
    }
  }
  
  function boxingDaycare() {
    // Scavenge for gym equipment - gives a few stats
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toInt)((0,libram__WEBPACK_IMPORTED_MODULE_3__.get)("_daycareGymScavenges")) < 1) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("/place.php?whichplace=town_wrong&action=townwrong_boxingdaycare");
      var pg = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(3);
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.containsText)(pg, "[free]")) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(2);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(5);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(4);
    }
  }
  
  function holidayYoked() {
    if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject85 || (_templateObject85 = _taggedTemplateLiteral(["Holiday Yoked"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureMp)(50);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$familiar)(_templateObject86 || (_templateObject86 = _taggedTemplateLiteral(["Ghost of Crimbo Carols"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject87 || (_templateObject87 = _taggedTemplateLiteral(["familiar scrapbook"])))); // ensure no kramco
  
      libram__WEBPACK_IMPORTED_MODULE_3__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject88 || (_templateObject88 = _taggedTemplateLiteral(["Snokebomb"])))).setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$location)(_templateObject89 || (_templateObject89 = _taggedTemplateLiteral(["Noob Cave"]))), -1, '');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$familiar)(_templateObject90 || (_templateObject90 = _taggedTemplateLiteral(["Hovering Sombrero"]))));
    }
  }
  
  function hobelf() {
    // proxy for having fought hobo elf
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject91 || (_templateObject91 = _taggedTemplateLiteral(["Wint-O-Fresh mint"]))))) {
      // ensure we have portscan
      libram__WEBPACK_IMPORTED_MODULE_3__.SourceTerminal.educate([(0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject92 || (_templateObject92 = _taggedTemplateLiteral(["Extract"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject93 || (_templateObject93 = _taggedTemplateLiteral(["Duplicate"])))]);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("hobelf"); //Macro.skill($skill`Duplicate`)
      //.skill($skill`Feel Envy`)
      //.skill($skill`Gingerbread Mob Hit`)
      //.setAutoAttack();
      // ensure shocking lick
  
      !(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject94 || (_templateObject94 = _taggedTemplateLiteral(["Lantern-Charged"])))) && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject95 || (_templateObject95 = _taggedTemplateLiteral(["battery (lantern)"]))));
      libram__WEBPACK_IMPORTED_MODULE_3__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject96 || (_templateObject96 = _taggedTemplateLiteral(["Duplicate"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject97 || (_templateObject97 = _taggedTemplateLiteral(["shocking lick"])))).setAutoAttack(); // block first attack
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject98 || (_templateObject98 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject99 || (_templateObject99 = _taggedTemplateLiteral(["Eight Days a Week Pill Keeper"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.reminisce)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$monster)(_templateObject100 || (_templateObject100 = _taggedTemplateLiteral(["elf hobo"])))); //reminisce($monster`hobelf`);
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject101 || (_templateObject101 = _taggedTemplateLiteral(["Wint-O-Fresh mint"]))))) {
      throw "Something went wrong with elf hobo reminisce";
    }
  }
  
  function main() {
    potions();
    buffMainstat();
    statGain();
    familiarWeight();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
    otherBuffs();
    monsterLevel();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
    holidayYoked(); // do before hobo elf as we want to nostalgia onto mushroom
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
    hobelf();
    synthBuffs(); // should have enough candies for the stat buffs
  
    statGainUniform();
    tenPercent();
    bastille();
    boxingDaycare();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
  }
  function buff() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/coilwire.ts":
  /*!*************************!*\
    !*** ./src/coilwire.ts ***!
    \*************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "default": () => (/* binding */ coilWire)
  /* harmony export */ });
  function coilWire() {
    return 60;
  }
  
  /***/ }),
  
  /***/ "./src/familiarweight.ts":
  /*!*******************************!*\
    !*** ./src/familiarweight.ts ***!
    \*******************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "universalWeightBuffs": () => (/* binding */ universalWeightBuffs),
  /* harmony export */   "default": () => (/* binding */ familiarTest)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function universalWeightBuffs() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Empathy"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Leash of Linguini"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Blood Bond"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Billiards Belligerence"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Do I Know You From Somewhere?"]))));
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_freePillKeeperUsed")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("pillkeeper familiar");
    }
  }
  
  function testPrep() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Exotic Parrot"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["cracker"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Daylight Shavings Helmet"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["fresh coat of paint"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["familiar scrapbook"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["Brutal brogues"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["Brutal brogues"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["hewn moon-rune spoon"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["Beach Comb"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["protonic accelerator pack"]))));
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["short stack of pancakes"]))))) (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Shortly Stacked"]))));
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["silver face paint"]))))) (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Robot Friends"]))));
  }
  
  function familiarTest() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.tuneMoon)();
    universalWeightBuffs();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.takeAShower)();
    testPrep();
    var predictor = 60 - Math.floor(((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.familiarWeight)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myFamiliar)()) + (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.weightAdjustment)()) / 5);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.logprint)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecuteOutput)("modtrace familiar weight"));
  
    if (predictor > 32) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Familiar weight predicted ".concat(predictor));
      throw "Failed to cap familiar weight at 32";
    }
  
    return 60 - Math.floor(((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.familiarWeight)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myFamiliar)()) + (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.weightAdjustment)()) / 5);
  }
  
  /***/ }),
  
  /***/ "./src/firstfights.ts":
  /*!****************************!*\
    !*** ./src/firstfights.ts ***!
    \****************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "firstFights": () => (/* binding */ firstFights),
  /* harmony export */   "main": () => (/* binding */ main)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function firstFights() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // make it easy for non-myst classes by using a lantern
  
    if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeSuperhero") == "heck") || !((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeWashingInstructions") == "kill")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape heck kill");
    } // ensure sausage goblin
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Kramco Sausage-o-Matic\u2122"])))); // ensure we get a ghost detection
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["protonic accelerator pack"])))); // don't waste garbage shirt
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["fresh coat of paint"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toInt)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("_sausageFights")) === 0) {
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Saucegeyser"])))).repeat().setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Noob Cave"]))), -1, '');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    } // prevent another goblin
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["familiar scrapbook"]))));
    var ghostLocation = (0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("ghostLocation");
  
    if (ghostLocation) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill("shoot ghost").skill("shoot ghost").skill("shoot ghost").skill("trap ghost").setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)(ghostLocation, -1, '');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["frigid derringer"])))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["frigid derringer"]))));
    } // reset clothing
  
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
  }
  function main() {
    firstFights();
  }
  
  /***/ }),
  
  /***/ "./src/fuelasdon.ts":
  /*!**************************!*\
    !*** ./src/fuelasdon.ts ***!
    \**************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "fuelAsdon": () => (/* binding */ fuelAsdon)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function fuelAsdon() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Prevent Scurvy and Sobriety"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureMp)(50);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Prevent Scurvy and Sobriety"]))));
    }
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["candy cane"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 3 candy cane"); // 3
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 3 eggnog"); // 15
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 3 white lightning"); // 15
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 3 mad train wine"); // 9
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 6 bottle of rum"); // 18
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 3 bottle of whiskey"); // 9
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 3 bottle of tequila"); // 9
    }
  }
  
  /***/ }),
  
  /***/ "./src/generateturns.ts":
  /*!******************************!*\
    !*** ./src/generateturns.ts ***!
    \******************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "generateTurns": () => (/* binding */ generateTurns)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_1__);
  var _templateObject, _templateObject2, _templateObject3;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function getTurns() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myLevel)() === 1 && !(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.mySpleenUse)()) {
      // using numberology
      while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_universeCalculated") < (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("skillLevel144")) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("numberology 69");
      }
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Not at start of run - ignore numberology");
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_borrowedTimeUsed")) {
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["borrowed time"]))))) {
        // creating borrowed time
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["borrowed time"]))));
      } // using borrowed time
  
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["borrowed time"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Borrowed time already used");
    } // use magical sausage so we have 61 turns
    // retrieveItem($item`magical sausage`);
    // eat($item`magical sausage`);
  
  }
  
  function main() {
    getTurns();
  }
  function generateTurns() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/getingredients.ts":
  /*!*******************************!*\
    !*** ./src/getingredients.ts ***!
    \*******************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "getIngredients": () => (/* binding */ getIngredients)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function mapMonster(location, monster) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveSkill)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Map the Monsters"])))) && !(0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.getPropertyBoolean)('mappingMonsters') && (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.getPropertyInt)('_monstersMapped') < 3) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Map the Monsters"]))));
    }
  
    if (!(0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.getPropertyBoolean)('mappingMonsters')) throw 'Failed to setup Map the Monsters.';
    var mapPage = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toUrl)(location), false, true);
    if (!mapPage.includes('Leading Yourself Right to Them')) throw 'Something went wrong mapping.';
    var fightPage = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php?pwd&whichchoice=1435&option=1&heyscriptswhatsupwinkwink=".concat(monster.id));
    if (!fightPage.includes(monster.name)) throw 'Something went wrong starting the fight.';
  }
  
  function mapAndJellyMonster(location, monster) {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Space Jellyfish"]))));
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["extract jelly"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["feel hatred"])))).setAutoAttack();
    mapMonster(location, monster);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  }
  
  function mapAndHatredMonster(location, monster) {
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["feel hatred"])))).setAutoAttack();
    mapMonster(location, monster);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  }
  
  function mapAndNostLickMonster(location, monster) {
    // add error handling for shocking lick
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["feel nostalgic"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["shocking lick"])))).setAutoAttack();
    mapMonster(location, monster);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  }
  
  function mapAndNostHitMonster(location, monster) {
    //equip($slot`acc3`,$item`Lil' Doctor™ bag`);
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["feel nostalgic"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["envy"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Gingerbread Mob Hit"])))).setAutoAttack();
    mapMonster(location, monster);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  }
  
  function tomatoFruit() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["tomato"])))) || (0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["tomato juice of powerful power"])))) || (0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["tomato power"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have tomato, potion, or effect (and we assume all fruits)");
    } else {
      // ensure shocking lick
      //!have($effect`Lantern-Charged`) && use($item`battery (lantern)`);
      // ensure mp
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)(); // check if we've already seen a tomato
  
      if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)('lastCopyableMonster') === 'possessed can of tomatoes')) {
        // check if meatsmith quest is started
        if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)('questM23Meatsmith') === 'unstarted') {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Opening skeleton store");
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('shop.php?whichshop=meatsmith&action=talk');
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(1); // get rid of nc
  
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["The Skeleton Store"]))), -1, '');
        }
  
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting tomato nostalgia");
        mapAndHatredMonster((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["The Haunted Pantry"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$monster)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["possessed can of tomatoes"]))));
      } // now sure we have a tomato to nost
      //mapAndNostLickMonster($location`The Skeleton Store`, $monster`novelty tropical skeleton`);
  
  
      mapAndNostHitMonster((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["The Skeleton Store"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$monster)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["novelty tropical skeleton"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["razor-sharp can lid"])))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["razor-sharp can lid"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["orange"])))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["orange"]))));
  }
  
  function main() {
    tomatoFruit();
  }
  function getIngredients() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/godlobster.ts":
  /*!***************************!*\
    !*** ./src/godlobster.ts ***!
    \***************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "godLobster": () => (/* binding */ godLobster)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function lobster() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_godLobsterFights") === 0) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.hotTub)();
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Saucegeyser"])))).repeat().setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["God Lobster"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.setChoice)(1310, 1);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("main.php?fightgodlobster=1");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runCombat)();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.multiFightAutoAttack)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(-1);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["God Lobster's Scepter"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("main.php?fightgodlobster=1");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runCombat)();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.multiFightAutoAttack)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(-1);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["God Lobster's Ring"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    }
  }
  
  function main() {
    lobster();
  }
  function godLobster() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/hotres.ts":
  /*!***********************!*\
    !*** ./src/hotres.ts ***!
    \***********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "default": () => (/* binding */ hotTest)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  var predictor = function predictor() {
    return 60 - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("hot resistance");
  };
  
  function faxLick() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_photocopyUsed")) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.trySkill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Shocking Lick"])))).setAutoAttack();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.faxFactoryWorker)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["photocopied monster"])))); //if (handlingChoice()) runChoice(-1);
    }
  }
  
  function getFoamy() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Fireproof Foam Suit"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.setChoice)(1387, 3);
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.horse)("dark");
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["industrial fire extinguisher"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["offhand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["none"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.advMacroAA)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["The Dire Warren"]))), libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Fire Extinguisher: Foam Yourself"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Use the Force"])))), 1, function () {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(3);
      });
    }
  }
  
  function castBuffs() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Empathy"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Leash of Linguini"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Blood Bond"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Fidoxene"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Billiards Belligerence"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Do I Know You From Somewhere?"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["Elemental Saucesphere"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["Astral Shell"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["Feeling Peaceful"])))); //    ensureEffect($effect`Rainbowolin`);
    //    ensureEffect($effect`Rainbow Vaccine`);
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["Hot-Headed"])))); //    if (!have($item`tenderizing hammer`)) {
    //        buy(1, $item`tenderizing hammer`);
    //    }
    //    cliExecute("smash * ratty knitted cap");
    //    cliExecute("smash * red-hot sausage fork");
    //    cliExecute("smash * smoldering bagel punch");
    //    if (!have($effect`Sleazy Hands`)) {
    //        if (!have($item`lotion of sleaziness`)) create(1, $item`lotion of sleaziness`);
    //        if (have($item`lotion of sleaziness`)) use(1, $item`lotion of sleaziness`);
    //    }
    //    if (!have($effect`Flame-Retardant Trousers`) && have($item`hot powder`)) {
    //        use(1, $item`hot powder`);
    //    }
    //    if (have($item`scroll of Protection from Bad Stuff`)) {
    //        ensureEffect($effect`Protection from Bad Stuff`);
    //    }
  }
  
  function deepDarkVisions() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.horse)("pale");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Exotic Parrot"]))));
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["astral pet sweater"])))) && (0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("tomeSummons") < 3) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["box of Familiar Jacks"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["box of Familiar Jacks"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.maximize)("spooky res", false);
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Deep Dark Visions"])))) && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["Visions of the Deep Dark Deeps"])))) < 30) {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < 20) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["magical sausage"]))));
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.eat)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["magical sausage"]))));
      }
  
      while ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myHp)() < (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxhp)()) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["Cannelloni Cocoon"]))));
      }
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < 100) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["magical sausage"]))));
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.eat)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["magical sausage"]))));
      }
  
      if (Math.round((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("spooky resistance")) < 10) {
        (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Does It Have a Skull In There??"]))));
  
        if (Math.round((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("spooky resistance")) < 10) {
          throw "Not enough spooky res for Deep Dark Visions.";
        }
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["Deep Dark Visions"]))));
    }
  }
  
  function testPrep() {
    //equip($slot`hat`, $item`FantasyRealm Mage's Hat`);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["fresh coat of paint"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["industrial fire extinguisher"]))));
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral(["meteorite guard"])))) && (0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral(["metal meteoroid"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral(["meteorite guard"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral(["meteorite guard"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject48 || (_templateObject48 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject49 || (_templateObject49 = _taggedTemplateLiteral(["Hewn moon-rune spoon"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject50 || (_templateObject50 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject51 || (_templateObject51 = _taggedTemplateLiteral(["Beach Comb"])))); // familiar weight
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape vampire hold");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject52 || (_templateObject52 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject53 || (_templateObject53 = _taggedTemplateLiteral(["unwrapped knock-off retro superhero cape"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject54 || (_templateObject54 = _taggedTemplateLiteral(["Exotic Parrot"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject55 || (_templateObject55 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject56 || (_templateObject56 = _taggedTemplateLiteral(["cracker"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.horse)("pale"); //  if(have($item`pocket maze`)){
    //    use($item`pocket maze`);
    //  }
    //  wishEffect($effect`Fireproof Lips`);
  }
  
  function hotTest() {
    //    faxLick();  
    castBuffs();
    getFoamy(); //    deepDarkVisions();
  
    testPrep(); //    print(`${predictor()}`);
  
    if (predictor() > 1) throw "Failed to cap hot resistance"; //cliExecute("modtrace hot res");
  
    return predictor();
  }
  
  /***/ }),
  
  /***/ "./src/index.ts":
  /*!**********************!*\
    !*** ./src/index.ts ***!
    \**********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var _coilwire__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coilwire */ "./src/coilwire.ts");
  /* harmony import */ var _familiarweight__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./familiarweight */ "./src/familiarweight.ts");
  /* harmony import */ var _hotres__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hotres */ "./src/hotres.ts");
  /* harmony import */ var _item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./item */ "./src/item.ts");
  /* harmony import */ var _noncombat__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./noncombat */ "./src/noncombat.ts");
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  /* harmony import */ var _spell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./spell */ "./src/spell.ts");
  /* harmony import */ var _stattests__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./stattests */ "./src/stattests.ts");
  /* harmony import */ var _weapon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./weapon */ "./src/weapon.ts");
  /* harmony import */ var _toot__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./toot */ "./src/toot.ts");
  /* harmony import */ var _shopping__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./shopping */ "./src/shopping.ts");
  /* harmony import */ var _generateturns__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./generateturns */ "./src/generateturns.ts");
  /* harmony import */ var _prepgear__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./prepgear */ "./src/prepgear.ts");
  /* harmony import */ var _firstfights__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./firstfights */ "./src/firstfights.ts");
  /* harmony import */ var _getingredients__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./getingredients */ "./src/getingredients.ts");
  /* harmony import */ var _buff__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./buff */ "./src/buff.ts");
  /* harmony import */ var _mushroom__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./mushroom */ "./src/mushroom.ts");
  /* harmony import */ var _lovtunnel__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./lovtunnel */ "./src/lovtunnel.ts");
  /* harmony import */ var _profchain__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./profchain */ "./src/profchain.ts");
  /* harmony import */ var _nep__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./nep */ "./src/nep.ts");
  /* harmony import */ var _godlobster__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./godlobster */ "./src/godlobster.ts");
  /* harmony import */ var _pilsners__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./pilsners */ "./src/pilsners.ts");
  /* harmony import */ var _fuelasdon__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./fuelasdon */ "./src/fuelasdon.ts");
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   //preamble
  
  if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPathId)() !== 25) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.abort)();
  (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("council.php");
  (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("ccs twiddle");
  (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  var startTime = Date.now();
  
  if (!(0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testDone)(_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.COIL_WIRE)) {
    (0,_toot__WEBPACK_IMPORTED_MODULE_10__.toot)();
    (0,_generateturns__WEBPACK_IMPORTED_MODULE_12__.generateTurns)();
    (0,_shopping__WEBPACK_IMPORTED_MODULE_11__.shopping)();
    (0,_prepgear__WEBPACK_IMPORTED_MODULE_13__.prepGear)();
    (0,_firstfights__WEBPACK_IMPORTED_MODULE_14__.firstFights)(); // need for sausage
  }
  
  try {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("wire-coiling", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.COIL_WIRE, _coilwire__WEBPACK_IMPORTED_MODULE_1__["default"]);
  } finally {}
  
  ; // should have full hp and mp
  
  if (!(0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testDone)(_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.MOX)) {
    (0,_getingredients__WEBPACK_IMPORTED_MODULE_15__.getIngredients)();
    (0,_buff__WEBPACK_IMPORTED_MODULE_16__.buff)();
    (0,_mushroom__WEBPACK_IMPORTED_MODULE_17__.mushroom)();
    /*  if(myMp()>0){
        throw "Testing";
      }
    */
  
    (0,_lovtunnel__WEBPACK_IMPORTED_MODULE_18__.lovTunnel)();
    (0,_godlobster__WEBPACK_IMPORTED_MODULE_21__.godLobster)();
    (0,_profchain__WEBPACK_IMPORTED_MODULE_19__.profChain)(); //  backupChain(); // keep for garbo
  
    (0,_nep__WEBPACK_IMPORTED_MODULE_20__.nep)();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.ensureMp)(Math.min(1000, (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxmp)()));
    (0,_pilsners__WEBPACK_IMPORTED_MODULE_22__.pilsners)();
    (0,_fuelasdon__WEBPACK_IMPORTED_MODULE_23__.fuelAsdon)(); // use booze from elf and PS&S
  }
  
  try {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("moxie", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.MOX, _stattests__WEBPACK_IMPORTED_MODULE_8__.moxTest);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("muscle", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.MUS, _stattests__WEBPACK_IMPORTED_MODULE_8__.muscleTest);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("HP", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.HP, _stattests__WEBPACK_IMPORTED_MODULE_8__.HPTest);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("mysticality", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.MYS, _stattests__WEBPACK_IMPORTED_MODULE_8__.mystTest);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("item", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.ITEM, _item__WEBPACK_IMPORTED_MODULE_4__["default"]);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("hot res", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.HOT_RES, _hotres__WEBPACK_IMPORTED_MODULE_3__["default"]);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("noncombat", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.NONCOMBAT, _noncombat__WEBPACK_IMPORTED_MODULE_5__["default"]);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("familiar", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.FAMILIAR, _familiarweight__WEBPACK_IMPORTED_MODULE_2__["default"]);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("weapon damage", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.WEAPON, _weapon__WEBPACK_IMPORTED_MODULE_9__["default"]);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.testWrapper)("spell damage", _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.Test.SPELL, _spell__WEBPACK_IMPORTED_MODULE_7__["default"]);
  } finally {
    _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.tests.forEach(function (testDuration) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("We expected the ".concat(testDuration.testName, " test to take ").concat(testDuration.turnPrediction, " turns, and it cost ").concat(testDuration.turnCost, " turns."), "blue");
    }); //const timeTaken = convertMilliseconds(gametimeToInt() - startTime);
  
    var secondsElapsed = (Date.now() - startTime) / 1000;
    var minutes = Math.floor(secondsElapsed / 60);
    var seconds = secondsElapsed - minutes * 60;
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("This loop took \n            ".concat(minutes, "m").concat(seconds.toFixed(1), "s\n            , assuming it ran contiguously. Otherwise, this run of the program lasted that much time. Hope whatever number you see is good!"), "red");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    _phredhccs_lib__WEBPACK_IMPORTED_MODULE_6__.PropertyManager.resetAll();
  }
  
  ;
  
  /***/ }),
  
  /***/ "./src/item.ts":
  /*!*********************!*\
    !*** ./src/item.ts ***!
    \*********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "default": () => (/* binding */ itemTest),
  /* harmony export */   "main": () => (/* binding */ main)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_3__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  /* harmony import */ var _synth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./synth */ "./src/synth.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  
  var predictor = function predictor() {
    return 60 - Math.floor((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("item drop") / 30 + 0.001) - Math.floor((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("booze drop") / 15 + 0.001);
  };
  
  function castBuffs() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("shrug ode");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Fat Leon's Phat Loot Lyric"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["The Spirit of Taking"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Singer's Faithful Ocelot"])))); // save for garbo?
    //    ensureEffect($effect`items.enh`);
    // class dependent
    //    ensureEffect($effect`El Aroma de Salsa`); 
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensurePotionEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Ermine Eyes"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["eyedrops of the ermine"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Nearly All-Natural"])))); // class dependent
    // ensure calendar buff is available
    //    use(1, $item`Bird-a-Day calendar`);
    //    ensureEffect($effect`Blessing of the Bird`);
  }
  
  function topupMP() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < 100) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Topping up MP at campground");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('place.php?whichplace=campaway&action=campaway_tentclick');
    }
  }
  
  function batBowl() {
    if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Cosmic Ball in the Air"])))) || !(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Bat-Adjacent Form"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // should still have dark horse
      // ensure no attack familiar
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$familiar)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Hovering Sombrero"])))); // briefcase for banish
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"])))); // cloake for bat form
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["vampyric cloake"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["familiar scrapbook"])))); // ensure no kramco
  
      topupMP(); // get buffs
  
      libram__WEBPACK_IMPORTED_MODULE_3__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Become a Bat"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Bowl Straight Up"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["KGB tranquilizer dart"])))).setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$location)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["Noob Cave"]))), -1, '');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    }
  }
  
  function synthBuffs() {
    (0,_synth__WEBPACK_IMPORTED_MODULE_2__.synth)('item');
  }
  
  function testPrep() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('clan_viplounge.php?action=fwshop');
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["oversized sparkler"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire oversized sparkler");
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["wad of used tape"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["cargo cultist shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["oversized sparkler"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["cursed magnifying glass"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["proton accelerator pack"])))); //    if (getWorkshed() === $item`Asdon Martin keyfob` && !have($effect`Driving Observantly`)) {
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["Driving Observantly"]))))) {
      //if (getFuel() < 37) fuelUp();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin drive observantly");
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Infernal Thirst"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.wishEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["Infernal Thirst"]))));
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.get)("_steelyEyedSquintUsed")) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Steely-Eyed Squint"]))));
    }
  }
  
  function itemTest() {
    castBuffs();
    batBowl();
    synthBuffs();
    testPrep();
  
    if (predictor() > 1) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Predicted item test: ".concat(predictor()));
      throw "Failed to cap item";
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.logprint)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecuteOutput)("modtrace item"));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.logprint)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecuteOutput)("modtrace booze"));
    return predictor();
  }
  function main() {
    itemTest();
  }
  
  /***/ }),
  
  /***/ "./src/lovtunnel.ts":
  /*!**************************!*\
    !*** ./src/lovtunnel.ts ***!
    \**************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "lovTunnel": () => (/* binding */ lovTunnel)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function lov() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // make it easy for non-myst classes by using a lantern
  
    if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeSuperhero") == "heck") || !((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeWashingInstructions") == "kill")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape heck kill");
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myHp)() < 50) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Cannelloni Cocoon"]))));
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.if_("monstername LOV enforcer", //Macro.trySkill($skill`feel pride`).skill($skill`saucegeyser`).repeat()
    //Macro.attack().repeat()
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["saucegeyser"])))).repeat()).if_("monstername LOV Engineer", //Macro.trySkill($skill`feel pride`).attack().repeat()
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Weapon of the Pastalord"])))).repeat()).if_("monstername LOV equivocator", //Macro.trySkill($skill`feel pride`).skill($skill`saucegeyser`).repeat()
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["saucegeyser"])))).repeat()).setAutoAttack();
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_loveTunnelUsed")) {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Mysticality"])))) {
        libram__WEBPACK_IMPORTED_MODULE_2__.TunnelOfLove.fightAll("LOV Epaulettes", "Open Heart Surgery", "LOV Extraterrestrial Chocolate");
      } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Muscle"])))) {
        libram__WEBPACK_IMPORTED_MODULE_2__.TunnelOfLove.fightAll("LOV Eardigan", "Open Heart Surgery", "LOV Extraterrestrial Chocolate");
      } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Moxie"])))) {
        libram__WEBPACK_IMPORTED_MODULE_2__.TunnelOfLove.fightAll("LOV Earring", "Open Heart Surgery", "LOV Extraterrestrial Chocolate");
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["LOV Extraterrestrial Chocolate"]))));
    }
  }
  
  function main() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
    lov();
  }
  function lovTunnel() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/mushroom.ts":
  /*!*************************!*\
    !*** ./src/mushroom.ts ***!
    \*************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "mushroom": () => (/* binding */ mushroom)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function garden() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // ensure we have portscan
  
    libram__WEBPACK_IMPORTED_MODULE_2__.SourceTerminal.educate([(0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Extract"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Portscan"])))]); // make it easy for non-myst classes by using a lantern
  
    if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeSuperhero") == "heck") || !((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeWashingInstructions") == "kill")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape heck kill");
    }
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.hotTub)();
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)('_mushroomGardenVisited')) {
      if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)('lastCopyableMonster') === 'Elf Hobo')) {
        throw "Something went wrong with hobelf -> mushroom nostalgia";
      } // going to cast mus/meat buff
      // also get candies from nostalgiad hobelf
  
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["vampyric cloake"])))); // original mushroom
  
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Feel Nostalgic"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Feel Envy"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Become a Wolf"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Portscan"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Saucegeyser"])))).repeat().setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Your Mushroom Garden"])))); // remove cloake
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)(); // 2 agents
  
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Portscan"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Macrometeorite"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Saucegeyser"])))).repeat().setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Your Mushroom Garden"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Your Mushroom Garden"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)(); // last agent
  
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Macrometeorite"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Saucegeyser"])))).repeat().setAutoAttack();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["Your Mushroom Garden"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.setChoice)(1410, 2);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["Your Mushroom Garden"])))); //      use($item`free-range mushroom`);
    }
  }
  
  function main() {
    garden();
  }
  function mushroom() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/nep.ts":
  /*!********************!*\
    !*** ./src/nep.ts ***!
    \********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "nep": () => (/* binding */ nep)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function NEP() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.setChoice)(1324, 5); // pick a fight
    // open NEP (should already be done by profchain)
    //if (!containsText($location`The Neverending Party`.noncombatQueue, 'The Beginning of the Neverend') && get('_neverendingPartyFreeTurns')<1 ) {
    // visitUrl(toUrl($location`The Neverending Party`));
    // if (["food", "booze"].includes(get("_questPartyFairQuest"))) {
    //   print("Gerald/ine quest!", "blue");
    // }
    // if (["food", "booze"].includes(get("_questPartyFairQuest"))) {
    //   runChoice(1); // Accept quest
    // } else {
    //   runChoice(2); // Decline quest
    // }
    //}
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // get +10lb potion
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Shorter-Order Cook"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.topupMP)();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.hotTub)(); // fish for more free fights
    // bad as it may cause an extra bowling ball
    // equip($slot`off-hand`,$item`Kramco Sausage-o-Matic™`);
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Curse of Weaksauce"])))).trySkill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["feel pride"])))).trySkill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Bowl Sideways"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["saucegeyser"])))).repeat().setAutoAttack();
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)('_neverendingPartyFreeTurns') < 10) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["The Neverending Party"]))), -1, '');
  
      while ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myHp)() < 0.8 * (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxhp)()) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Cannelloni Cocoon"]))));
      }
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureMp)(200);
    } // should get here before bowling ball is back
  
  
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Shattering Punch"])))).setAutoAttack();
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_shatteringPunchUsed") < 3) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureMp)(30);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["The Neverending Party"]))), -1, '');
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Lil' Doctor\u2122 bag"]))));
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Chest X-Ray"])))).setAutoAttack();
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_chestXRayUsed") < 3) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["The Neverending Party"]))), -1, '');
    }
  
    libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Gingerbread Mob Hit"])))).setAutoAttack();
  
    while (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_gingerbreadMobHitUsed")) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureMp)(30);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["The Neverending Party"]))), -1, '');
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  }
  
  function main() {
    NEP();
  }
  function nep() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/noncombat.ts":
  /*!**************************!*\
    !*** ./src/noncombat.ts ***!
    \**************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "default": () => (/* binding */ noncombatTest)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_3__);
  /* harmony import */ var _familiarweight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./familiarweight */ "./src/familiarweight.ts");
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  
  var predictor = function predictor() {
    return 60 + (20 + (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("combat rate")) * 3;
  };
  
  function godLobster() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Silence of the God Lobster"])))) && (0,libram__WEBPACK_IMPORTED_MODULE_3__.get)("_godLobsterFights") < 3 && (0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["God Lobster's Ring"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.md_uniform)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$familiar)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["God Lobster"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["God Lobster's Ring"]))));
      libram__WEBPACK_IMPORTED_MODULE_3__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_3__.$skill)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Saucegeyser"])))).repeat().setAutoAttack();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.heal)();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.setChoice)(1310, 2);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("main.php?fightgodlobster=1");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runCombat)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(-1);
    }
  }
  
  function castBuffs() {
    (0,_familiarweight__WEBPACK_IMPORTED_MODULE_1__.universalWeightBuffs)();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Smooth Movements"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Billiards Belligerence"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Feeling Lonely"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Powerful Glove"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Invisible Avatar"])))); //    ensureEffect($effect`Blessing of the Bird`);
    //    if (!get("_clanFortuneBuffUsed")) cliExecute("fortune buff familiar");
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Fat Leon's Phat Loot Lyric"]))))) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("shrug fat leon's phat loot lyric");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["The Sonata of Sneakiness"]))));
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.get)("_olympicSwimmingPool")) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("swim sprints");
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$effect)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Driving Stealthily"]))))) {
      /*
      if (getFuel() < 37){
          //fuelUp();
          // use the free drops
          cliExecute(`asdonmartin fuel 3 eggnog`);
          cliExecute(`asdonmartin fuel 3 white lightning`);
          cliExecute(`asdonmartin fuel 3 mad train wine`);
          cliExecute(`asdonmartin fuel 3 bottle of rum`);
          cliExecute(`asdonmartin fuel 3 bottle of whiskey`);
          cliExecute(`asdonmartin fuel 3 bottle of tequila`);
      } 
      */
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin drive stealthily");
    }
  }
  
  function testPrep() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["porkpie-mounted popper"])))) < 1) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire porkpie-mounted popper");
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["porkpie-mounted popper"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["fresh coat of paint"])))); //equip($slot`pants`, $item`pantogram pants`);
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["bass clarinet\t"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["bass clarinet"]))));
    } else if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["fish hatchet"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["fish hatchet"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["familiar scrapbook"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["codpiece"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["codpiece"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["hewn moon-rune spoon"])))); // familiar weight
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral(["Beach Comb"])))); // familiar weight
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$slot)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral(["protonic accelerator pack"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$familiar)(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral(["Disgeist"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_2__.horse)("dark");
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_3__.have)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral(["shady shades"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_3__.$item)(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral(["shady shades"]))));
    }
  }
  
  function noncombatTest() {
    //    tuneMoon();
    godLobster();
    castBuffs();
    testPrep(); //    print(`${predictor()}`);
  
    if (predictor() > 1) throw "Failed to cap noncombat";
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.logprint)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecuteOutput)("modtrace combat"));
    return predictor();
  }
  
  /***/ }),
  
  /***/ "./src/phredhccs-lib.ts":
  /*!******************************!*\
    !*** ./src/phredhccs-lib.ts ***!
    \******************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "PropertyManager": () => (/* binding */ PropertyManager),
  /* harmony export */   "fuelUp": () => (/* binding */ fuelUp),
  /* harmony export */   "synthExp": () => (/* binding */ synthExp),
  /* harmony export */   "synthItem": () => (/* binding */ synthItem),
  /* harmony export */   "synthMyst": () => (/* binding */ synthMyst),
  /* harmony export */   "synthHot": () => (/* binding */ synthHot),
  /* harmony export */   "kramcoCheck": () => (/* binding */ kramcoCheck),
  /* harmony export */   "useDefaultFamiliar": () => (/* binding */ useDefaultFamiliar),
  /* harmony export */   "Test": () => (/* binding */ Test),
  /* harmony export */   "testDone": () => (/* binding */ testDone),
  /* harmony export */   "doTest": () => (/* binding */ doTest),
  /* harmony export */   "ensureInnerElf": () => (/* binding */ ensureInnerElf),
  /* harmony export */   "fightSausageIfAble": () => (/* binding */ fightSausageIfAble),
  /* harmony export */   "ensurePotionEffect": () => (/* binding */ ensurePotionEffect),
  /* harmony export */   "ensureEffect": () => (/* binding */ ensureEffect),
  /* harmony export */   "setClan": () => (/* binding */ setClan),
  /* harmony export */   "setChoice": () => (/* binding */ setChoice),
  /* harmony export */   "uniform": () => (/* binding */ uniform),
  /* harmony export */   "pullIfPossible": () => (/* binding */ pullIfPossible),
  /* harmony export */   "tuneMoon": () => (/* binding */ tuneMoon),
  /* harmony export */   "reminisce": () => (/* binding */ reminisce),
  /* harmony export */   "md_uniform": () => (/* binding */ md_uniform),
  /* harmony export */   "withMacro": () => (/* binding */ withMacro),
  /* harmony export */   "ensureItem": () => (/* binding */ ensureItem),
  /* harmony export */   "ensureNpcEffect": () => (/* binding */ ensureNpcEffect),
  /* harmony export */   "getPropertyBoolean": () => (/* binding */ getPropertyBoolean),
  /* harmony export */   "getPropertyInt": () => (/* binding */ getPropertyInt),
  /* harmony export */   "eatPizza": () => (/* binding */ eatPizza),
  /* harmony export */   "wishEffect": () => (/* binding */ wishEffect),
  /* harmony export */   "takeAShower": () => (/* binding */ takeAShower),
  /* harmony export */   "tryUse": () => (/* binding */ tryUse),
  /* harmony export */   "multiFightAutoAttack": () => (/* binding */ multiFightAutoAttack),
  /* harmony export */   "heal": () => (/* binding */ heal),
  /* harmony export */   "advMacroAA": () => (/* binding */ advMacroAA),
  /* harmony export */   "advMacro": () => (/* binding */ advMacro),
  /* harmony export */   "mapMacro": () => (/* binding */ mapMacro),
  /* harmony export */   "horsery": () => (/* binding */ horsery),
  /* harmony export */   "horse": () => (/* binding */ horse),
  /* harmony export */   "convertMilliseconds": () => (/* binding */ convertMilliseconds),
  /* harmony export */   "fax": () => (/* binding */ fax),
  /* harmony export */   "faxFactoryWorker": () => (/* binding */ faxFactoryWorker),
  /* harmony export */   "tests": () => (/* binding */ tests),
  /* harmony export */   "testWrapper": () => (/* binding */ testWrapper),
  /* harmony export */   "questStep": () => (/* binding */ questStep),
  /* harmony export */   "tryHead": () => (/* binding */ tryHead),
  /* harmony export */   "ensureMp": () => (/* binding */ ensureMp),
  /* harmony export */   "topupMP": () => (/* binding */ topupMP),
  /* harmony export */   "hotTub": () => (/* binding */ hotTub),
  /* harmony export */   "ensureMp_old": () => (/* binding */ ensureMp_old)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_1__);
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56, _templateObject57, _templateObject58, _templateObject59, _templateObject60, _templateObject61, _templateObject62, _templateObject63, _templateObject64, _templateObject65, _templateObject66, _templateObject67, _templateObject68, _templateObject69, _templateObject70, _templateObject71, _templateObject72, _templateObject73, _templateObject74, _templateObject75, _templateObject76, _templateObject77, _templateObject78, _templateObject79, _templateObject80, _templateObject81, _templateObject82, _templateObject83, _templateObject84, _templateObject85, _templateObject86, _templateObject87, _templateObject88, _templateObject89, _templateObject90, _templateObject91, _templateObject92, _templateObject93, _templateObject94, _templateObject95, _templateObject96, _templateObject97, _templateObject98, _templateObject99, _templateObject100, _templateObject101, _templateObject102, _templateObject103, _templateObject104, _templateObject105, _templateObject106, _templateObject107, _templateObject108, _templateObject109, _templateObject110, _templateObject111, _templateObject112, _templateObject113, _templateObject114, _templateObject115, _templateObject116, _templateObject117, _templateObject118, _templateObject119, _templateObject120, _templateObject121, _templateObject122, _templateObject123, _templateObject124, _templateObject125, _templateObject126, _templateObject127, _templateObject128, _templateObject129, _templateObject130, _templateObject131, _templateObject132, _templateObject133, _templateObject134, _templateObject135, _templateObject136, _templateObject137, _templateObject138, _templateObject139, _templateObject140, _templateObject141, _templateObject142, _templateObject143, _templateObject144, _templateObject145, _templateObject146, _templateObject147, _templateObject148, _templateObject149, _templateObject150, _templateObject151, _templateObject152, _templateObject153, _templateObject154, _templateObject155, _templateObject156, _templateObject157, _templateObject158, _templateObject159, _templateObject160, _templateObject161, _templateObject162, _templateObject163, _templateObject164, _templateObject165, _templateObject166, _templateObject167, _templateObject168, _templateObject169, _templateObject170, _templateObject171, _templateObject172, _templateObject173, _templateObject174, _templateObject175, _templateObject176, _templateObject177, _templateObject178, _templateObject179, _templateObject180, _templateObject181, _templateObject182, _templateObject183;
  
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  var PropertyManager = new libram__WEBPACK_IMPORTED_MODULE_1__.PropertiesManager();
  function fuelUp() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(7, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["wad of dough"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(7, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["soda water"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(7, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["loaf of soda bread"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("asdonmartin fuel 7 soda bread");
  }
  function synthExp() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("harvestGardenHardcore") === "none") {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("campground.php?action=garden");
    }
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_candySummons") === 0) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Summon Crimbo Candy"]))));
    }
  
    var fudge = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Crimbo fudge"])));
    var pecan = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Crimbo candied pecan"])));
    var bark = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Crimbo peppermint bark"])));
    var fudges = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(fudge);
    var pecans = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(pecan);
    var barks = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(bark);
  
    if (fudges >= 2) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(fudge, fudge);
    } else if (barks >= 1) {
      if (pecans >= 1) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(pecan, bark);
      } else {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(bark, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["peppermint sprout"]))));
      }
    } else {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["sugar shotgun"])))) === 0) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["sugar shotgun"]))));
      }
  
      if (pecans >= 1) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(pecan, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["sugar shotgun"]))));
      } else {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["sugar shotgun"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["peppermint sprout"]))));
      }
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Synthesis: Learning"])))) === 0) {
      throw "I'm very embarrassed, and I'm sorry to admit it, but I failed to synthesize learning. Pwease fix me :c.";
    }
  }
  function synthItem() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("harvestGardenHardcore") === "none") {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("campground.php?action=garden");
    }
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_candySummons") === 0) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Summon Crimbo Candy"]))));
    } //const fudge = $item`Crimbo fudge`;
  
  
    var pecan = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Crimbo candied pecan"])));
    var bark = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Crimbo peppermint bark"]))); //const fudges = availableAmount(fudge);
  
    var pecans = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(pecan);
    var barks = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(bark);
  
    if (barks >= 2) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(bark, bark);
    } else {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["peppermint twist"])))) === 0) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["peppermint twist"]))));
      }
  
      if (pecans >= 1) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(pecan, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["peppermint twist"]))));
      } else {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["peppermint sprout"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["peppermint twist"]))));
      }
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["Synthesis: Collection"])))) === 0) {
      throw "I'm very embarrassed, and I'm sorry to admit it, but I failed to synthesize collection. Pwease fix me :c.";
    }
  }
  function synthMyst() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("harvestGardenHardcore") === "none") {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("campground.php?action=garden");
    }
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_candySummons") === 0) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Summon Crimbo Candy"]))));
    } //const fudge = $item`Crimbo fudge`;
    //const pecan = $item`Crimbo candied pecan`;
    //const bark = $item`Crimbo peppermint bark`;
    //const fudges = availableAmount(fudge);
    //const pecans = availableAmount(pecan);
    //const barks = availableAmount(bark);
  
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["bag of many confections"])))) >= 1) {
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_chubbyAndPlumpUsed")) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Chubby and Plump"]))));
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["Chubby and Plump bar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["bag of many confections"]))));
    } else {
      var mint = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["Senior Mints"])));
      var mints = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(mint);
      var orangeHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["orange candy heart"])));
  
      var orangeHearts = function orangeHearts() {
        return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(orangeHeart);
      };
  
      var pinkHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["pink candy heart"])));
  
      var pinkHearts = function pinkHearts() {
        return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["pink candy heart"]))));
      };
  
      var n = 0;
  
      while (mints + orangeHearts() + pinkHearts() === 0 && n < 11) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Summon Candy Heart"]))));
        n++;
      }
  
      if (mints + orangeHearts() + pinkHearts() === 0) {
        throw "Failed to summon hearts in a timely manner";
      }
  
      if (mints >= 1) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(mint, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["peppermint sprout"]))));
      } else if (orangeHearts() >= 1) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(orangeHeart, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["peppermint sprout"]))));
      } else if (pinkHearts() >= 1) {
        if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["peppermint twist"])))) === 0) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["peppermint twist"]))));
        }
  
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(pinkHeart, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["peppermint twist"]))));
      }
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["Synthesis: Smart"])))) === 0) {
      throw "I'm very embarrassed, and I'm sorry to admit it, but I failed to synthesize smart. Pwease fix me :c.";
    }
  }
  function synthHot() {
    //none of us are free of sin. i know how to write this better now, but i won't <3
    var wintoMint = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["Wint-O-Fresh mint"])));
    var wintoMints = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(wintoMint);
    var whiteHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral(["white candy heart"])));
  
    var whiteHearts = function whiteHearts() {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(whiteHeart);
    };
  
    var greenHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral(["green candy heart"])));
  
    var greenHearts = function greenHearts() {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(greenHeart);
    };
  
    var orangeHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral(["orange candy heart"])));
  
    var orangeHearts = function orangeHearts() {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(orangeHeart);
    };
  
    var coldHot = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral(["Cold Hots candy"])));
    var coldHots = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(coldHot);
    var daffyTaffy = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral(["Daffy Taffy"])));
    var daffyTaffys = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(daffyTaffy);
    var yellowHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral(["yellow candy heart"])));
  
    var yellowHearts = function yellowHearts() {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(yellowHeart);
    };
  
    var mrMediocre = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral(["Mr. Mediocrebar"])));
    var mrMediocres = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(mrMediocre);
    var lavenderHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject48 || (_templateObject48 = _taggedTemplateLiteral(["lavender candy heart"])));
  
    var lavenderHearts = function lavenderHearts() {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(lavenderHeart);
    };
  
    var pinkHeart = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject49 || (_templateObject49 = _taggedTemplateLiteral(["pink candy heart"])));
  
    var pinkHearts = function pinkHearts() {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(pinkHeart);
    };
  
    var n = 0;
  
    while ((wintoMints + whiteHearts() + greenHearts()) * orangeHearts() === 0 && (coldHots + daffyTaffys + yellowHearts()) * (mrMediocres + lavenderHearts()) === 0 && pinkHearts() !== 2 && n <= 11) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject50 || (_templateObject50 = _taggedTemplateLiteral(["Summon Candy Heart"]))));
      n++;
    }
  
    if (n > 11) {
      throw "Unable to retrieve candies in a timely manner";
    }
  
    if ((wintoMints + whiteHearts() + greenHearts()) * orangeHearts() !== 0) {
      if (wintoMints > 0) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(wintoMint, orangeHeart);
      } else if (whiteHearts() > 0) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(whiteHeart, orangeHeart);
      } else {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(greenHeart, orangeHeart);
      }
    } else if ((coldHots + daffyTaffys + yellowHearts()) * (mrMediocres + lavenderHearts()) !== 0) {
      if (mrMediocres >= 1) {
        if (coldHots >= 1) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(mrMediocre, daffyTaffy);
        } else if (daffyTaffys >= 1) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(mrMediocre, daffyTaffy);
        } else if (yellowHearts() >= 1) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(mrMediocre, yellowHeart);
        }
      } else {
        if (coldHots >= 1) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(lavenderHeart, daffyTaffy);
        } else if (daffyTaffys >= 1) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(lavenderHeart, daffyTaffy);
        } else if (yellowHearts() >= 1) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(lavenderHeart, yellowHeart);
        }
      }
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)(pinkHeart, pinkHeart);
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject51 || (_templateObject51 = _taggedTemplateLiteral(["Synthesis: Hot"])))) === 0) {
      throw "I'm very embarrassed, and I'm sorry to admit it, but I failed to synthesize hot. Pwease fix me :c.";
    }
  }
  function kramcoCheck() {
    var kramcoNumber = 5 + 3 * (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_sausageFights") + Math.pow(Math.max(0, (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_sausageFights") - 5), 3);
    return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.totalTurnsPlayed)() - (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_lastSausageMonsterTurn") + 1 >= kramcoNumber;
  }
  function useDefaultFamiliar() {
    var canAttack = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_bagOfCandy") && canAttack) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject52 || (_templateObject52 = _taggedTemplateLiteral(["Stocking Mimic"]))));
    } else if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("camelSpit") !== 100) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject53 || (_templateObject53 = _taggedTemplateLiteral(["Melodramedary"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject54 || (_templateObject54 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject55 || (_templateObject55 = _taggedTemplateLiteral(["dromedary drinking helmet"]))));
    } else if (canAttack && !(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject56 || (_templateObject56 = _taggedTemplateLiteral(["short stack of pancakes"])))) && !(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject57 || (_templateObject57 = _taggedTemplateLiteral(["Shortly Stacked"])))) && !testDone(Test.FAMILIAR)) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject58 || (_templateObject58 = _taggedTemplateLiteral(["Shorter-Order Cook"]))));
    } else if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject59 || (_templateObject59 = _taggedTemplateLiteral(["burning newspaper"])))) && !(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject60 || (_templateObject60 = _taggedTemplateLiteral(["burning paper crane"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject61 || (_templateObject61 = _taggedTemplateLiteral(["Garbage Fire"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject62 || (_templateObject62 = _taggedTemplateLiteral(["Puck Man"]))));
    }
  }
  var Test;
  
  (function (Test) {
    Test[Test["HP"] = 1] = "HP";
    Test[Test["MUS"] = 2] = "MUS";
    Test[Test["MYS"] = 3] = "MYS";
    Test[Test["MOX"] = 4] = "MOX";
    Test[Test["FAMILIAR"] = 5] = "FAMILIAR";
    Test[Test["WEAPON"] = 6] = "WEAPON";
    Test[Test["SPELL"] = 7] = "SPELL";
    Test[Test["NONCOMBAT"] = 8] = "NONCOMBAT";
    Test[Test["ITEM"] = 9] = "ITEM";
    Test[Test["HOT_RES"] = 10] = "HOT_RES";
    Test[Test["COIL_WIRE"] = 11] = "COIL_WIRE";
    Test[Test["DONATE"] = 30] = "DONATE";
  })(Test || (Test = {}));
  
  function testDone(testNum) {
    //stolen directly from bean
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Checking test ".concat(testNum, "..."));
    var text = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("council.php");
    return !(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.containsText)(text, "<input type=hidden name=option value=".concat(testNum, ">"));
  }
  function doTest(testNum) {
    //stolen directly from bean
    if (!testDone(testNum)) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php?whichchoice=1089&option=".concat(testNum));
  
      if (!testDone(testNum)) {
        throw 'Failed to do test " + testNum + ". Maybe we are out of turns.';
      }
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Test ".concat(testNum, " already completed."));
    }
  }
  function ensureInnerElf() {
    //stolen merely mostly from bean
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject63 || (_templateObject63 = _taggedTemplateLiteral(["Inner Elf"]))))) {
      setClan("Hobopolis Vacation Home");
  
      try {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject64 || (_templateObject64 = _taggedTemplateLiteral(["Machine Elf"]))));
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject65 || (_templateObject65 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject66 || (_templateObject66 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
        setChoice(326, 1);
        ensureEffect((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject67 || (_templateObject67 = _taggedTemplateLiteral(["Blood Bubble"]))));
        advMacro((0,libram__WEBPACK_IMPORTED_MODULE_1__.$location)(_templateObject68 || (_templateObject68 = _taggedTemplateLiteral(["The Slime Tube"]))), libram__WEBPACK_IMPORTED_MODULE_1__.Macro.trySkill((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject69 || (_templateObject69 = _taggedTemplateLiteral(["KGB tranquilizer dart"])))).trySkill((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject70 || (_templateObject70 = _taggedTemplateLiteral(["Snokebomb"])))));
      } finally {
        setClan("Alliance From Heck");
      }
    }
  }
  function fightSausageIfAble(location, macro) {
    if (kramcoCheck()) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject71 || (_templateObject71 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject72 || (_templateObject72 = _taggedTemplateLiteral(["Kramco Sausage-o-Matic\u2122"]))));
      var sausages = (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_sausageFights");
      advMacroAA(location, macro, function () {
        return sausages === (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_sausageFights");
      });
  
      if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("lastEncounter") !== "sausage goblin") {
        throw "Did not fight a sausage, but I thought I would. Uh oh!";
      }
    }
  }
  function ensurePotionEffect(ef, potion) {
    //stolen directly from bean
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)(ef)) {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(potion) === 0) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, potion);
      }
  
      if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)(ef["default"]) || (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)(ef) === 0) {
        throw "Failed to get effect ".concat(ef.name, ".");
      }
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have effect ".concat(ef.name, "."));
    }
  }
  function ensureEffect(ef) {
    var turns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  
    //stolen directly from bean
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)(ef) < turns) {
      if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)(ef["default"]) || (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)(ef) === 0) {
        throw "Failed to get effect ".concat(ef.name, ".");
      }
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have effect ".concat(ef.name, "."));
    }
  }
  function setClan(target) {
    //stolen directly from bean
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getClanName)() !== target) {
      var clanCache = JSON.parse((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("hccs_clanCache") || "{}");
  
      if (clanCache.target === undefined) {
        var recruiter = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("clan_signup.php");
        var clanRe = /<option value=([0-9]+)>([^<]+)<\/option>/g;
        var match;
  
        while ((match = clanRe.exec(recruiter)) !== null) {
          clanCache[match[2]] = match[1];
        }
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setProperty)("hccs_clanCache", JSON.stringify(clanCache));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("showclan.php?whichclan=".concat(clanCache[target], "&action=joinclan&confirm=on&pwd"));
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getClanName)() !== target) {
        throw "failed to switch clans to ".concat(target, ". Did you spell it correctly? Are you whitelisted?");
      }
    }
  
    return true;
  }
  function setChoice(adv, choice) {
    PropertyManager.setChoices(_defineProperty({}, adv, choice));
  }
  function uniform() {
    var pants = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject73 || (_templateObject73 = _taggedTemplateLiteral(["pantogram pants"])))) !== 0 ? (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject74 || (_templateObject74 = _taggedTemplateLiteral(["pantogram pants"]))) : (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject75 || (_templateObject75 = _taggedTemplateLiteral(["old sweatpants"])));
    var acc3 = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject76 || (_templateObject76 = _taggedTemplateLiteral(["battle broom"])))) !== 0 ? (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject77 || (_templateObject77 = _taggedTemplateLiteral(["battle broom"]))) : (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject78 || (_templateObject78 = _taggedTemplateLiteral(["Powerful Glove"])));
    var back = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject79 || (_templateObject79 = _taggedTemplateLiteral(["LOV Epaulettes"])))) !== 0 ? (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject80 || (_templateObject80 = _taggedTemplateLiteral(["LOV Epaulettes"]))) : (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject81 || (_templateObject81 = _taggedTemplateLiteral(["vampyric cloake"])));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject82 || (_templateObject82 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject83 || (_templateObject83 = _taggedTemplateLiteral(["Iunion Crown"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject84 || (_templateObject84 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject85 || (_templateObject85 = _taggedTemplateLiteral(["fresh coat of paint"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject86 || (_templateObject86 = _taggedTemplateLiteral(["pants"]))), pants);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject87 || (_templateObject87 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject88 || (_templateObject88 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject89 || (_templateObject89 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject90 || (_templateObject90 = _taggedTemplateLiteral(["familiar scrapbook"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject91 || (_templateObject91 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject92 || (_templateObject92 = _taggedTemplateLiteral(["your cowboy boots"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject93 || (_templateObject93 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject94 || (_templateObject94 = _taggedTemplateLiteral(["codpiece"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject95 || (_templateObject95 = _taggedTemplateLiteral(["acc3"]))), acc3);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject96 || (_templateObject96 = _taggedTemplateLiteral(["back"]))), back);
  }
  function pullIfPossible(quantity, it, maxPrice) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.pullsRemaining)() > 0) {
      var quantityPull = Math.max(0, quantity - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(it)); //print(`Pulling ${it}`);
      //print(`quantityPull ${quantityPull}`);
      //print(`quantity ${quantity}`);
      //print(`available ${availableAmount(it)}`);
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.shopAmount)(it) > 0) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.takeShop)(Math.min((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.shopAmount)(it), quantityPull), it);
      }
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.storageAmount)(it) < quantityPull) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buyUsingStorage)(quantityPull - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.storageAmount)(it), it, maxPrice);
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("pull ".concat(quantityPull, " ").concat(it.name));
      return true;
    } else return false;
  }
  function tuneMoon() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.mySign)() !== "Wombat" && !(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("moonTuned")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Tuning moon to wombat"); // ensure moon spoon is not equipped
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject97 || (_templateObject97 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject98 || (_templateObject98 = _taggedTemplateLiteral(["backup camera"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject99 || (_templateObject99 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject100 || (_templateObject100 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject101 || (_templateObject101 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject102 || (_templateObject102 = _taggedTemplateLiteral(["Powerful Glove"])))); // tune to wombat
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("inv_use.php?whichitem=10254&pwd&doit=96&whichsign=7");
    }
  }
  function reminisce(monster) {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Reminiscing ".concat(monster));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("reminisce ".concat(monster));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runCombat)(); //print(`${toInt(monster)}`);
    //print(`"choice.php?pwd&whichchoice=1463&option=1&mid=" + ${toInt(monster)}`);
    //visitUrl("inventory.php?reminisce=1");
    //visitUrl("choice.php?pwd&whichchoice=1463&option=1&mid=" + toInt(monster));
    //visitUrl("inventory.php?reminisce=1&pwd&option=1&mid=" + toInt(monster));
  }
  function md_uniform() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_1__.$stat)(_templateObject103 || (_templateObject103 = _taggedTemplateLiteral(["Mysticality"])))) {
      var hat = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject104 || (_templateObject104 = _taggedTemplateLiteral(["FantasyRealm Mage's Hat"])));
      var weapon = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject105 || (_templateObject105 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"])));
      var acc2 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject106 || (_templateObject106 = _taggedTemplateLiteral(["codpiece"])));
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject107 || (_templateObject107 = _taggedTemplateLiteral(["Draftsman's driving gloves"])))) != 0) {
        var acc3 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject108 || (_templateObject108 = _taggedTemplateLiteral(["Draftsman's driving gloves"])));
      } else {
        var acc3 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject109 || (_templateObject109 = _taggedTemplateLiteral(["Powerful Glove"])));
      }
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject110 || (_templateObject110 = _taggedTemplateLiteral(["LOV Epaulettes"])))) !== 0) {
        var back = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject111 || (_templateObject111 = _taggedTemplateLiteral(["LOV Epaulettes"])));
      } else {
        if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeSuperhero") == "heck") || !((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeWashingInstructions") == "kill")) {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape heck kill");
        }
  
        var back = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject112 || (_templateObject112 = _taggedTemplateLiteral(["unwrapped knock-off retro superhero cape"])));
      }
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_1__.$stat)(_templateObject113 || (_templateObject113 = _taggedTemplateLiteral(["Muscle"])))) {
      var hat = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject114 || (_templateObject114 = _taggedTemplateLiteral(["FantasyRealm Warrior's Helm"])));
      var weapon = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject115 || (_templateObject115 = _taggedTemplateLiteral(["fish hatchet"])));
      var acc2 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject116 || (_templateObject116 = _taggedTemplateLiteral(["Powerful Glove"])));
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject117 || (_templateObject117 = _taggedTemplateLiteral(["Brutal brogues"])))) != 0) {
        var acc3 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject118 || (_templateObject118 = _taggedTemplateLiteral(["Brutal brogues"])));
      } else {
        var acc3 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject119 || (_templateObject119 = _taggedTemplateLiteral(["hewn moon-rune spoon"])));
      }
  
      if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeSuperhero") == "vampire") || !((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeWashingInstructions") == "thrill")) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape vampire thrill");
      }
  
      var back = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject120 || (_templateObject120 = _taggedTemplateLiteral(["unwrapped knock-off retro superhero cape"])));
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_1__.$stat)(_templateObject121 || (_templateObject121 = _taggedTemplateLiteral(["Moxie"])))) {
      var hat = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject122 || (_templateObject122 = _taggedTemplateLiteral(["FantasyRealm Rogue's Mask"])));
      var weapon = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject123 || (_templateObject123 = _taggedTemplateLiteral(["bass clarinet"])));
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject124 || (_templateObject124 = _taggedTemplateLiteral(["LOV Earrings"])))) !== 0) {
        var acc2 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject125 || (_templateObject125 = _taggedTemplateLiteral(["LOV Earrings"])));
      } else {
        var acc2 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject126 || (_templateObject126 = _taggedTemplateLiteral(["Beach Comb"]))); // beach comb 20% mox
      }
  
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject127 || (_templateObject127 = _taggedTemplateLiteral(["Nouveau nosering"])))) != 0) {
        var acc3 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject128 || (_templateObject128 = _taggedTemplateLiteral(["Nouveau nosering"])));
      } else {
        var acc3 = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject129 || (_templateObject129 = _taggedTemplateLiteral(["Powerful Glove"])));
      }
  
      if (!((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeSuperhero") == "robot") || !((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)("retroCapeWashingInstructions") == "thrill")) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape robot thrill");
      }
  
      var back = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject130 || (_templateObject130 = _taggedTemplateLiteral(["unwrapped knock-off retro superhero cape"])));
    } else {
      throw 'Unknown mainstat';
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject131 || (_templateObject131 = _taggedTemplateLiteral(["makeshift garbage shirt"])))) !== 0) {
      var shirt = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject132 || (_templateObject132 = _taggedTemplateLiteral(["makeshift garbage shirt"])));
    } else {
      var shirt = (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject133 || (_templateObject133 = _taggedTemplateLiteral(["fresh coat of paint"])));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject134 || (_templateObject134 = _taggedTemplateLiteral(["hat"]))), hat);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject135 || (_templateObject135 = _taggedTemplateLiteral(["back"]))), back);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject136 || (_templateObject136 = _taggedTemplateLiteral(["shirt"]))), shirt); //equip($slot`pants`, $item`pantogram pants`);
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject137 || (_templateObject137 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject138 || (_templateObject138 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject139 || (_templateObject139 = _taggedTemplateLiteral(["weapon"]))), weapon);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject140 || (_templateObject140 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject141 || (_templateObject141 = _taggedTemplateLiteral(["familiar scrapbook"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject142 || (_templateObject142 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject143 || (_templateObject143 = _taggedTemplateLiteral(["backup camera"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject144 || (_templateObject144 = _taggedTemplateLiteral(["acc2"]))), acc2);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject145 || (_templateObject145 = _taggedTemplateLiteral(["acc3"]))), acc3);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject146 || (_templateObject146 = _taggedTemplateLiteral(["Hovering Sombrero"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject147 || (_templateObject147 = _taggedTemplateLiteral(["familiar"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject148 || (_templateObject148 = _taggedTemplateLiteral(["miniature crystal ball"]))));
  }
  function withMacro(macro, action) {
    macro.save();
  
    try {
      return action();
    } finally {
      libram__WEBPACK_IMPORTED_MODULE_1__.Macro.clearSaved();
    }
  }
  function ensureItem(quantity, it) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(it) < quantity) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(quantity - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(it), it);
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(it) < quantity) {
      throw "Could not buy ".concat(quantity, " of item ").concat(it.name, ": only ").concat((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(it), ".");
    }
  }
  function ensureNpcEffect(ef, quantity, potion) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)(ef) === 0) {
      ensureItem(quantity, potion);
  
      if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)(ef["default"]) || (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)(ef) === 0) {
        throw "Failed to get effect ".concat(ef.name);
      }
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have effect ".concat(ef.name, "."));
    }
  }
  function getPropertyBoolean(name) {
    var str = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)(name);
  
    if (str === '') {
      throw "Unknown property ".concat(name, ".");
    }
  
    return str === 'true';
  }
  function getPropertyInt(name) {
    var str = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.getProperty)(name);
  
    if (str === '') {
      throw "Unknown property ".concat(name, ".");
    }
  
    return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toInt)(str);
  }
  function eatPizza() {
    for (var _len = arguments.length, ingredients = new Array(_len), _key = 0; _key < _len; _key++) {
      ingredients[_key] = arguments[_key];
    }
  
    var ingrs = ingredients.map(function (ingr) {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toInt)(ingr);
    }).join();
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("campground.php?action=makepizza&pizza=".concat(ingrs));
    ensureItem(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject149 || (_templateObject149 = _taggedTemplateLiteral(["diabolic pizza"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.eat)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject150 || (_templateObject150 = _taggedTemplateLiteral(["diabolic pizza"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('refresh inventory');
  }
  function wishEffect(ef) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.haveEffect)(ef) === 0) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("genie effect ".concat(ef.name));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have effect ".concat(ef.name, "."));
    }
  }
  function takeAShower() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_meteorShowerUses") < 5 && !(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject151 || (_templateObject151 = _taggedTemplateLiteral(["Meteor Showered"]))))) {
      setChoice(1387, 3); // ensure no kill horse or familiar
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$familiar)(_templateObject152 || (_templateObject152 = _taggedTemplateLiteral(["none"]))));
      horse("dark");
      md_uniform(); // ensure saber
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject153 || (_templateObject153 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject154 || (_templateObject154 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"])))); // and no Kramco
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$slot)(_templateObject155 || (_templateObject155 = _taggedTemplateLiteral(["offhand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject156 || (_templateObject156 = _taggedTemplateLiteral(["familiar scrapbook"]))));
      advMacroAA((0,libram__WEBPACK_IMPORTED_MODULE_1__.$location)(_templateObject157 || (_templateObject157 = _taggedTemplateLiteral(["The Dire Warren"]))), libram__WEBPACK_IMPORTED_MODULE_1__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject158 || (_templateObject158 = _taggedTemplateLiteral(["Meteor Shower"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject159 || (_templateObject159 = _taggedTemplateLiteral(["Use the Force"])))), 1, function () {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(3);
      });
      (0,libram__WEBPACK_IMPORTED_MODULE_1__.set)("_meteorShowerUses", 1 + (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_meteorShowerUses"));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    }
  }
  function tryUse(quantity, it) {
    //ripped straight from bean
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)(it) > 0) {
      return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(quantity, it);
    } else {
      return false;
    }
  }
  function multiFightAutoAttack() {
    while ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.choiceFollowsFight)() || (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.inMultiFight)()) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php");
    }
  }
  function heal() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.restoreHp)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxhp)());
  }
  function advMacroAA(location, macro) {
    var parameter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
    var afterCombatAction = arguments.length > 3 ? arguments[3] : undefined;
    var n = 0;
  
    var condition = function condition() {
      return typeof parameter === "number" ? n < parameter : parameter();
    };
  
    macro.setAutoAttack();
  
    while (condition()) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)(location, -1, function () {
        return libram__WEBPACK_IMPORTED_MODULE_1__.Macro.if_("!pastround 2", macro).abort().toString();
      });
      if (afterCombatAction) afterCombatAction();
      n++;
    }
  }
  function advMacro(location, macro) {
    var parameter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
    var afterCombatAction = arguments.length > 3 ? arguments[3] : undefined;
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    var n = 0;
  
    var condition = function condition() {
      return typeof parameter === "number" ? n < parameter : parameter();
    };
  
    while (condition()) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)(location, -1, function () {
        return libram__WEBPACK_IMPORTED_MODULE_1__.Macro.if_("!pastround 2", macro).abort().toString();
      });
      if (afterCombatAction) afterCombatAction();
      n++;
    }
  }
  function mapMacro(location, monster, macro) {
    macro.setAutoAttack();
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject160 || (_templateObject160 = _taggedTemplateLiteral(["Map the Monsters"]))));
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("mappingMonsters")) throw "I am not actually mapping anything. Weird!";else {
      while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("mappingMonsters")) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toUrl)(location));
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(1, "heyscriptswhatsupwinkwink=".concat(monster.id));
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runCombat)(macro.toString());
      }
    }
  }
  function horsery() {
    return (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_horsery");
  }
  function horse(horse) {
    if (!horse.includes("horse")) horse = "".concat(horse, " horse");
    if (horsery() !== horse) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("horsery ".concat(horse));
  }
  function convertMilliseconds(milliseconds) {
    var seconds = milliseconds / 1000;
    var minutes = Math.floor(seconds / 60);
    var secondsLeft = seconds - minutes * 60;
    var hours = Math.floor(minutes / 60);
    var minutesLeft = minutes - hours * 60;
    return (hours !== 0 ? "".concat(hours, " hours, ") : "") + (minutesLeft !== 0 ? "".concat(minutesLeft, " minutes, ") : "") + (secondsLeft !== 0 ? "".concat(secondsLeft, " seconds") : "");
  }
  
  function checkFax(monster) {
    setClan("Bonus Adventures from Hell");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("fax receive");
    if (libram__WEBPACK_IMPORTED_MODULE_1__.property.getString("photocopyMonster").toLowerCase() === monster.name.toLowerCase()) return true;
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("fax send");
    return false;
  }
  
  function fax(monster) {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_photocopyUsed")) {
      if (checkFax(monster)) return;
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.chatPrivate)("cheesefax", monster.name);
  
      for (var i = 0; i < 3; i++) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.wait)(10);
        if (checkFax(monster)) return;
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.abort)("Failed to acquire photocopied ".concat(monster.name, "."));
    }
  }
  function faxFactoryWorker() {
    setClan("Bonus Adventures from Hell");
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_photocopyUsed")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.chatPrivate)("cheesefax", "factory worker");
  
      for (var i = 0; i < 3; i++) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.wait)(10);
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("fax receive");
  
        if (libram__WEBPACK_IMPORTED_MODULE_1__.property.getString("photocopyMonster").toLowerCase() === "factory worker") {
          return;
        } else {
          (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("fax send");
        }
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.abort)("Failed to acquire photocopied factory worker.");
    }
  }
  var tests = [];
  function testWrapper(name, test, prepare) {
    if (testDone(test)) return;
    var startTurns = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myTurncount)();
    var predictedTurns = prepare();
    doTest(test);
    tests.push({
      testName: name,
      turnPrediction: predictedTurns,
      turnCost: (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myTurncount)() - startTurns
    });
  }
  function questStep(questName) {
    var stringStep = libram__WEBPACK_IMPORTED_MODULE_1__.property.getString(questName);
    if (stringStep === "unstarted" || stringStep === "") return -1;else if (stringStep === "started") return 0;else if (stringStep === "finished") return 999;else {
      if (stringStep.substring(0, 4) !== "step") {
        throw "Quest state parsing error.";
      }
  
      return parseInt(stringStep.substring(4), 10);
    }
  }
  var heads = [(0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject161 || (_templateObject161 = _taggedTemplateLiteral(["Hot-Headed"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject162 || (_templateObject162 = _taggedTemplateLiteral(["Cold as Nice"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject163 || (_templateObject163 = _taggedTemplateLiteral(["A Brush with Grossness"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject164 || (_templateObject164 = _taggedTemplateLiteral(["Does It Have a Skull In There??"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject165 || (_templateObject165 = _taggedTemplateLiteral(["Oiled, Slick"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject166 || (_templateObject166 = _taggedTemplateLiteral(["Lack of Body-Building"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject167 || (_templateObject167 = _taggedTemplateLiteral(["We're All Made of Starfish"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject168 || (_templateObject168 = _taggedTemplateLiteral(["Pomp & Circumsands"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject169 || (_templateObject169 = _taggedTemplateLiteral(["Resting Beach Face"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject170 || (_templateObject170 = _taggedTemplateLiteral(["Do I Know You From Somewhere?"]))), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject171 || (_templateObject171 = _taggedTemplateLiteral(["You Learned Something Maybe!"])))];
  function tryHead(effect) {
    if (!heads.includes(effect)) return;
    var headNumber = 1 + heads.indexOf(effect);
    if (libram__WEBPACK_IMPORTED_MODULE_1__.property.getString("_beachHeadsUsed").split(",").includes(headNumber.toString())) return;
    ensureEffect(effect);
  }
  function ensureMp(mp) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() > mp) return;
    if (mp > (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxmp)()) throw "Insufficient maximum mp!";
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject172 || (_templateObject172 = _taggedTemplateLiteral(["magical sausage"])))) || (0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject173 || (_templateObject173 = _taggedTemplateLiteral(["magical sausage casing"])))) && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < mp && (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_sausagesEaten") < 23) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.retrieveItem)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject174 || (_templateObject174 = _taggedTemplateLiteral(["magical sausage"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.eat)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject175 || (_templateObject175 = _taggedTemplateLiteral(["magical sausage"]))));
    }
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject176 || (_templateObject176 = _taggedTemplateLiteral(["psychokinetic energy blob"])))) && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < mp) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject177 || (_templateObject177 = _taggedTemplateLiteral(["psychokinetic energy blob"]))));
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < mp) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.restoreMp)(mp);
  }
  function topupMP() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < 100 && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxmp)()) {
      if (getPropertyInt("timesRested") < (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.totalFreeRests)()) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Topping up MP at campground");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('place.php?whichplace=campaway&action=campaway_tentclick');
      } else {
        // revert to sausages/energy blob/buying stuff
        ensureMp(100);
      }
    }
  }
  function hotTub() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myHp)() < 0.9 * (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxhp)()) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('hottub');
    }
  }
  function ensureMp_old(mp) {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() > mp) return;
    if (mp > (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxmp)()) throw "Insufficient maximum mp!";
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject178 || (_templateObject178 = _taggedTemplateLiteral(["magical sausage"])))) || (0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject179 || (_templateObject179 = _taggedTemplateLiteral(["magical sausage casing"])))) && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < mp && (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_sausagesEaten") < 23) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.retrieveItem)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject180 || (_templateObject180 = _taggedTemplateLiteral(["magical sausage"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.eat)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject181 || (_templateObject181 = _taggedTemplateLiteral(["magical sausage"]))));
    }
  
    while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject182 || (_templateObject182 = _taggedTemplateLiteral(["psychokinetic energy blob"])))) && (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < mp) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject183 || (_templateObject183 = _taggedTemplateLiteral(["psychokinetic energy blob"]))));
    }
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMp)() < mp) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.restoreMp)(mp);
  }
  
  /***/ }),
  
  /***/ "./src/pilsners.ts":
  /*!*************************!*\
    !*** ./src/pilsners.ts ***!
    \*************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "pilsners": () => (/* binding */ pilsners)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_1__);
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function drinkPilsners() {
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["astral six-pack"])))) !== 0) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["astral six-pack"])))); //    if (have($effect`The Magical Mojomuscular Melody`))
    //        cliExecute("shrug The Magical Mojomuscular Melody");
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["astral pilsner"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["The Ode to Booze"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$skill)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["The Ode to Booze"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.drink)(6, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["astral pilsner"]))));
    }
  }
  
  function main() {
    drinkPilsners();
  }
  function pilsners() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/prepgear.ts":
  /*!*************************!*\
    !*** ./src/prepgear.ts ***!
    \*************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "prepGear": () => (/* binding */ prepGear)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function setSettings() {
    // Set terminal
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Setting terminal extract and portscan"); //SourceTerminal.educate([$skill`Extract`, $skill`Portscan`]);
  
    libram__WEBPACK_IMPORTED_MODULE_2__.SourceTerminal.educate([(0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Extract"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Duplicate"])))]); // Set clan
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Going to Old Old CW's Germ Free Clan");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.setClan)("Old CW's Germ Free Clan");
  }
  
  function setEquipment() {
    // mumming trunk
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Hovering Sombrero"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Dressing with mumming trunk for mys");
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Mysticality"])))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("mummery myst");
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Muscle"])))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("mummery muscle");
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Moxie"])))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("mummery moxie");
    } else {
      throw 'Unknown mainstat';
    } // saber
  
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"])))) && !(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_saberMod")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Upgrading saber for familiar weight");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('main.php?action=may4');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(4);
    } // floundry
  
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_floundryItemCreated")) {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Mysticality"])))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting codpiece");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire codpiece");
      } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Muscle"])))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting fish hatchet");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire fish hatchet");
      } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Moxie"])))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting bass clarinet");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire bass clarinet");
      } else {
        throw 'Unknown mainstat';
      }
    } // pantogram -- save for garbo (not needed for hot or item)
  
    /*
    if (!have($item`pantogram pants`)) {
        if (myPrimestat() === $stat`Mysticality`){
            print(`Making pantogram pants: mys, hot, nc`);
            cliExecute("pantogram mysticality|hot|drops of blood|some self-respect|your hopes|silent");
        }
        else if (myPrimestat() === $stat`Muscle`){
            print(`Making pantogram pants: mus, hot, nc`);
            cliExecute("pantogram muscle|hot|drops of blood|some self-respect|your hopes|silent");        
        }
        else if (myPrimestat() === $stat`Moxie`){
            print(`Making pantogram pants: mox, hot, nc`);
            cliExecute("pantogram moxie|hot|drops of blood|some self-respect|your hopes|silent");      
        }
        else{
            throw('Unknown mainstat');
        }
    }
    */
    // songboom
  
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("boomBoxSong") !== "Total Eclipse of Your Meat") {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Setting song boom meat");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("boombox meat");
    } // retrocape
    //print(`Setting retrocape heck clown`);
    //cliExecute("retrocape heck kill");
    // camera
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Setting backup camera reverser, ml");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("backupcamera reverser");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("backupcamera ml"); // lathe 
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("shop.php?whichshop=lathe");
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["flimsy hardwood scraps"])))) > 0) {
      if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["ebony epee"])))) < 1) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Lathing epee");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["ebony epee"]))));
      }
    } // power plant
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Harvesting batteries");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("inv_use.php?pwd&whichitem=10738");
  
    for (var i = 1; i < 8; i++) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("choice.php?pwd&whichchoice=1448&option=1&pp=".concat(i));
    } // fantasy realm
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting fantasy realm hat");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("place.php?whichplace=realm_fantasy&action=fr_initcenter");
  
    if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["Mysticality"])))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php?pwd&whichchoice=1280&option=2");
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Muscle"])))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php?pwd&whichchoice=1280&option=1");
    } else if ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)() === (0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Moxie"])))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("choice.php?pwd&whichchoice=1280&option=3");
    } else {
      throw 'Unknown mainstat';
    } // looking glass
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)('clan_viplounge.php?action=lookingglass&whichfloor=2'); // briefcase
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Setting briefcase weapon, hot, -combat");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("briefcase enchantment weapon hot -combat"); // tote
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('fold makeshift garbage shirt'); // cracker
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["cracker"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting cracker");
  
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["box of Familiar Jacks"]))))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting and using familiar jacks");
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.create)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["box of Familiar Jacks"]))));
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["Exotic Parrot"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["box of Familiar Jacks"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have cracker");
    } // enable calendar skills
  
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Bird-a-Day calendar"]))));
  }
  
  function main() {
    setSettings();
    setEquipment();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
  }
  function prepGear() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/profchain.ts":
  /*!**************************!*\
    !*** ./src/profchain.ts ***!
    \**************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "profChain": () => (/* binding */ profChain)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function profFights() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.setChoice)(1324, 5); // pick a fight
    // open NEP
  
    if (!(0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.containsText)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject || (_templateObject = _taggedTemplateLiteral(["The Neverending Party"]))).noncombatQueue, 'The Beginning of the Neverend') && (0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_pocketProfessorLectures") < 1) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.toUrl)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["The Neverending Party"])))));
  
      if (["food", "booze"].includes((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_questPartyFairQuest"))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Gerald/ine quest!", "blue");
      }
  
      if (["food", "booze"].includes((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_questPartyFairQuest"))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(1); // Accept quest
      } else {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.runChoice)(2); // Decline quest
      }
    }
  
    if ((0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.kramcoCheck)()) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); //topupMP();
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.hotTub)();
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Kramco Sausage-o-Matic\u2122"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Pocket Professor"])))); //        equip($item`Pocket Professor memory chip`);
  
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Empathy"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Leash of Linguini"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Blood Bond"]))));
      var profCopies = Math.ceil(Math.sqrt((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.familiarWeight)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myFamiliar)()) + (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.weightAdjustment)())); // set up bowl sideways for +50%? statgain for 5+7(?) adventures
  
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.if_('!monstername "sausage goblin"', new libram__WEBPACK_IMPORTED_MODULE_2__.Macro().step('abort')).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Curse of Weaksauce"])))).trySkill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Bowl Sideways"])))).trySkill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["lecture on relativity"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["saucegeyser"])))).repeat().setAutoAttack();
  
      while ((0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_pocketProfessorLectures") < profCopies) {
        //adv1($location`Noob Cave`, -1, '');
        // use NEP to maximise uses of bowling ball buff
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.adv1)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["The Neverending Party"]))), -1, '');
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
    }
  }
  
  function main() {
    profFights();
  }
  function profChain() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/shopping.ts":
  /*!*************************!*\
    !*** ./src/shopping.ts ***!
    \*************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "shopping": () => (/* binding */ shopping)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_1__);
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function countWorthlessItems() {
    return (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["worthless gewgaw"])))) + (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["worthless knick-knack"])))) + (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.availableAmount)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["worthless trinket"]))));
  }
  
  function countSewerItems() {
    var sewerItems = 0;
    (0,libram__WEBPACK_IMPORTED_MODULE_1__.$items)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["disco ball, disco mask, helmet turtle, hollandaise helmet, mariachi hat, \n         pasta spoon, ravioli hat, saucepan, seal-skull helmet, seal-clubbing club, \n         stolen accordion, turtle totem"]))).forEach(function (item) {
      return sewerItems += Number((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.itemAmount)(item) > 0);
    });
    return sewerItems;
  }
  
  function generalStore() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Visiting general store..."); // dramatic range
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("hasRange")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Getting and using dramatic range");
  
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Dramatic\u2122 range"]))))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Dramatic\u2122 range"]))));
      }
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Dramatic\u2122 range"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have dramatic range");
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Finished general store shopping.");
  }
  
  function numberologyMeat() {
    // generate 1400 meat
    while ((0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("_universeCalculated") < (0,libram__WEBPACK_IMPORTED_MODULE_1__.get)("skillLevel144")) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("numberology 14");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)(14, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["moxie weed"]))));
    }
  }
  
  function sewerFishing() {
    // fish using all available gum on string
    //const gumStringAvailable = availableAmount($item`chewing gum on a string`);
    //use($item`chewing gum on a string`,gumStringAvailable);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire saucepan");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("acquire turtle totem");
  }
  
  function getAccordion() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["toy accordion"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Need toy accordion");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["toy accordion"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have toy accordion");
    }
  }
  
  function getMeatcar() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["bitchin' meatcar"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Creating bitchin' meatcar");
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("create bitchin' meatcar");
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Already have bitchin' meatcar");
    }
  }
  
  function main() {
    //numberologyMeat();
    generalStore();
    sewerFishing();
    getAccordion();
    getMeatcar(); //fuelUp(); // going to use things from run
  }
  function shopping() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/spell.ts":
  /*!**********************!*\
    !*** ./src/spell.ts ***!
    \**********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "default": () => (/* binding */ spellTest)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  var predictor = function predictor() {
    return 61 - Math.floor((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("spell damage") / 50 + 0.001) - Math.floor((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("spell damage percent") / 50 + 0.001);
  };
  
  function castBuffs() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Simmering"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Song of Sauce"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Carol of the Hells"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Mental A-cue-ity"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Carol of the Bulls"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Carol of the Bulls"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Jackasses' Symphony of Destruction"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["Arched Eyebrow of the Archmage"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Spirit of Cayenne"]))));
  }
  
  function testPrep() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["obsidian nutcracker"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["obsidian nutcracker"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["porkpie-mounted popper"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["fresh coat of paint"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["obsidian nutcracker"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["Abracandalabra"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Abracandalabra"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["ebony epee"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("briefcase enchantment spell");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["hewn moon-rune spoon"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["Powerful Glove"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["Draftsman's driving gloves"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Draftsman's driving gloves"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["Beach Comb"])))); // ?? something better
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["protonic accelerator pack"]))));
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["Witch Breaded"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.wishEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["Witch Breaded"]))));
    }
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["AAA-Charged"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["LOV Elixir #6"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["The Magic of LOV"]))));
    }
  }
  
  function spellTest() {
    castBuffs();
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.takeAShower)();
    testPrep();
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.logprint)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecuteOutput)("modtrace spell"));
  
    if (predictor() > 37) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Spell damage predicted ".concat(predictor()));
      throw "Failed to cap spell damage at 37";
    }
  
    return predictor();
  }
  
  /***/ }),
  
  /***/ "./src/stattests.ts":
  /*!**************************!*\
    !*** ./src/stattests.ts ***!
    \**************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "muscleTest": () => (/* binding */ muscleTest),
  /* harmony export */   "mystTest": () => (/* binding */ mystTest),
  /* harmony export */   "moxTest": () => (/* binding */ moxTest),
  /* harmony export */   "HPTest": () => (/* binding */ HPTest)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56, _templateObject57, _templateObject58, _templateObject59, _templateObject60, _templateObject61, _templateObject62, _templateObject63, _templateObject64, _templateObject65, _templateObject66, _templateObject67, _templateObject68, _templateObject69, _templateObject70, _templateObject71, _templateObject72;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function stat_uniform() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["wad of used tape"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('fold wad of used tape');
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["wad of used tape"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["unwrapped knock-off retro superhero cape"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["industrial fire extinguisher"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["Beach Comb"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Eight Days a Week Pill Keeper"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
  }
  
  function shrugATBuffs() {
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["Ode to Booze"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("shrug Ode to Booze");
    }
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["Ur-Kel's Aria of Annoyance"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("shrug Ur-Kel's Aria of Annoyance");
    }
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["Polka of Plenty"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("shrug Polka of Plenty");
    }
  }
  
  var musclePredictor = function musclePredictor() {
    return 60 - Math.floor(1 / 30 * ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBuffedstat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["muscle"])))) - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBasestat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["muscle"]))))));
  };
  
  function musclebuffs() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape vampire hold");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["Big"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Feeling Excited"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["Lack of Body-Building"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Quiet Determination"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["Rage of the Reindeer"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["Go Get 'Em, Tiger!"]))));
  }
  
  function muscleTest() {
    stat_uniform();
    shrugATBuffs();
    musclebuffs();
  
    if (musclePredictor() > 1) {
      throw "Not enough muscle to cap";
    }
  
    return musclePredictor();
  }
  
  var mystPredictor = function mystPredictor() {
    return 60 - Math.floor(1 / 30 * ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBuffedstat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["mysticality"])))) - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBasestat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["mysticality"]))))));
  };
  
  function mystbuffs() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape heck hold");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Big"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["Feeling Excited"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["We're All Made of Starfish"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["Quiet Judgement"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["The Magical Mojomuscular Melody"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["Glittering Eyelashes"]))));
  }
  
  function mystTest() {
    stat_uniform();
    shrugATBuffs();
    mystbuffs();
  
    if (mystPredictor() > 1) {
      throw "Not enough mysticality to cap";
    }
  
    return mystPredictor();
  }
  
  var moxPredictor = function moxPredictor() {
    return 60 - Math.floor(1 / 30 * ((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBuffedstat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["moxie"])))) - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBasestat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["moxie"]))))));
  };
  
  function moxBuffs() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape robot thrill");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["Big"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["Feeling Excited"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral(["Pomp & Circumsands"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral(["Quiet Desperation"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral(["Disco Fever"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral(["Blubbered Up"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral(["Disco Smirk"]))));
  }
  
  function moxTest() {
    stat_uniform();
    shrugATBuffs();
    stat_uniform();
    moxBuffs();
  
    if (moxPredictor() > 1) {
      throw "Not enough moxie to cap.";
    }
  
    return moxPredictor();
  }
  
  function hpBuffs() {
    //    useSkill(1, $skill`Bind Undead Elbow Macaroni`);
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral(["Big"])))); //    ensureEffect($effect`Song of Starch`);
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral(["Rage of the Reindeer"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject48 || (_templateObject48 = _taggedTemplateLiteral(["Quiet Determination"])))); //    ensureEffect($effect`Disdain of the War Snapper`);
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject49 || (_templateObject49 = _taggedTemplateLiteral(["Feeling Excited"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject50 || (_templateObject50 = _taggedTemplateLiteral(["Stevedave's Shanty of Superiority"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject51 || (_templateObject51 = _taggedTemplateLiteral(["Lack of Body-Building"])))); //    ensureEffect($effect`The Power of LOV`);
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject52 || (_templateObject52 = _taggedTemplateLiteral(["Go Get 'Em, Tiger!"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.retrieveItem)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject53 || (_templateObject53 = _taggedTemplateLiteral(["Ben-Gal\u2122 Balm"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject54 || (_templateObject54 = _taggedTemplateLiteral(["Ben-Gal\u2122 Balm"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('fold wad of used tape');
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject55 || (_templateObject55 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject56 || (_templateObject56 = _taggedTemplateLiteral(["wad of used tape"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject57 || (_templateObject57 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject58 || (_templateObject58 = _taggedTemplateLiteral(["cargo cultist shorts"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject59 || (_templateObject59 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject60 || (_templateObject60 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject61 || (_templateObject61 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject62 || (_templateObject62 = _taggedTemplateLiteral(["ebony epee"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject63 || (_templateObject63 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject64 || (_templateObject64 = _taggedTemplateLiteral(["kremlin's greatest briefcase"], ["kremlin\\'s greatest briefcase"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject65 || (_templateObject65 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject66 || (_templateObject66 = _taggedTemplateLiteral(["eight days a week pill keeper"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject67 || (_templateObject67 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject68 || (_templateObject68 = _taggedTemplateLiteral(["hewn moon-rune spoon"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)("retrocape vampire hold");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject69 || (_templateObject69 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject70 || (_templateObject70 = _taggedTemplateLiteral(["unwrapped knock-off retro superhero cape"]))));
  }
  
  var hpPredictor = function hpPredictor() {
    return 60 - Math.floor(((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myMaxhp)() - (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myBuffedstat)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$stat)(_templateObject71 || (_templateObject71 = _taggedTemplateLiteral(["muscle"])))) - 3) / 30);
  };
  
  function hpTestPrep() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject72 || (_templateObject72 = _taggedTemplateLiteral(["Left-Hand Man"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.maximize)("hp", false);
  }
  
  function HPTest() {
    // make space for AT buffs
    shrugATBuffs();
    hpBuffs(); //hpTestPrep();
  
    if (hpPredictor() > 1) {
      throw "Failed to cap HP";
    }
  
    return hpPredictor();
  }
  
  /***/ }),
  
  /***/ "./src/synth.ts":
  /*!**********************!*\
    !*** ./src/synth.ts ***!
    \**********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "synth": () => (/* binding */ synth),
  /* harmony export */   "main": () => (/* binding */ main)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_1__);
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  function getPrimestat() {
    var primeStat = (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.myPrimestat)();
    var primeStatName = "";
  
    if (primeStat === (0,libram__WEBPACK_IMPORTED_MODULE_1__.$stat)(_templateObject || (_templateObject = _taggedTemplateLiteral(["Muscle"])))) {
      primeStatName = "Muscle";
    } else if (primeStat === (0,libram__WEBPACK_IMPORTED_MODULE_1__.$stat)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Mysticality"])))) {
      primeStatName = "Mysticality";
    } else if (primeStat === (0,libram__WEBPACK_IMPORTED_MODULE_1__.$stat)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Moxie"])))) {
      primeStatName = "Moxie";
    }
  
    return primeStatName;
  }
  
  function getCandy(buffType) {
    var complexCandyMap = {
      0: "Crimbo candied pecan",
      3: "Crimbo peppermint bark",
      4: "Crimbo fudge"
    };
    var simpleCandyMap = {
      0: "jabañero-flavored chewing gum",
      2: "tamarind-flavored chewing gum",
      3: "lime-and-chile-flavored chewing gum",
      4: "pickle-flavored chewing gum"
    };
  
    if (buffType === "stats") {
      var candy1Type = "simple";
      var candy2Type = "complex";
      var candyId1 = {
        "Muscle": 0,
        // 0 = 0 + 0 
        "Mysticality": 3,
        // 2 = 3 + 4
        "Moxie": 3 // 1 = 3 + 3
  
      };
      var candyId2 = {
        "Muscle": 0,
        // 0 = 0 + 0 
        "Mysticality": 4,
        // 2 = 3 + 4
        "Moxie": 3 // 1 = 3 + 3
  
      };
    } else if (buffType === "statgain") {
      var candy1Type = "complex";
      var candy2Type = "complex";
      var candyId1 = {
        "Muscle": 4,
        // 2 = 4 + 3 
        "Mysticality": 4,
        // 4 = 4 + 0
        "Moxie": 4 // 3 = 4 + 4
  
      };
      var candyId2 = {
        "Muscle": 3,
        // 2 = 4 + 3 
        "Mysticality": 0,
        // 4 = 4 + 0
        "Moxie": 4 // 3 = 4 + 4
  
      };
    } else if (buffType === "item") {
      var candy1Type = "complex";
      var candy2Type = "complex";
      var candyId1 = {
        "Muscle": 3,
        "Mysticality": 3,
        "Moxie": 3
      };
      var candyId2 = {
        "Muscle": 3,
        "Mysticality": 3,
        "Moxie": 3
      };
    } else {
      throw "Unknown Sweet Synthesis buff type ".concat(buffType);
    }
  
    if (candy1Type === "complex") {
      var candyMap1 = complexCandyMap;
    } else if (candy1Type === "simple") {
      var candyMap1 = simpleCandyMap;
    } else {
      throw "Unknown candy type type ".concat(candy1Type);
    }
  
    if (candy2Type === "complex") {
      var candyMap2 = complexCandyMap;
    } else if (candy2Type === "simple") {
      var candyMap2 = simpleCandyMap;
    } else {
      throw "Unknown candy type type ".concat(candy2Type);
    }
  
    var primeStat = getPrimestat();
    var candy1 = candyMap1[candyId1[primeStat]];
    var candy2 = candyMap2[candyId2[primeStat]];
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)(candy1);
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)(candy2);
  
    if (candy1Type === "simple") {
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["", ""])), candy1))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", ""])), candy1));
      }
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", ""])), candy1))) {
      throw "Missing ".concat(candy1);
    }
  
    if (candy2Type === "simple") {
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["", ""])), candy2))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.buy)(1, (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ""])), candy2));
      }
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ""])), candy2))) {
      throw "Missing ".concat(candy2);
    }
    /*
    if(have($skill`summon crimbo candy`)){
        useSkill(1,$skill`summon crimbo candy`);
    }
    */
  
  
    var chosenCandies = [candy1, candy2];
    return chosenCandies;
  }
  
  function synth(buffType) {
    if (buffType === "stats") {
      // simple + complex
      var buffNames = {
        "Muscle": "Synthesis: Strong",
        // 0 = 0 + 0 
        "Mysticality": "Synthesis: Smart",
        // 2 = 3 + 4
        "Moxie": "Synthesis: Cool" // 1 = 3 + 3
  
      };
    } else if (buffType === "statgain") {
      // complex + complex
      var buffNames = {
        "Muscle": "	Synthesis: Movement",
        // 2 = 4 + 3
        "Mysticality": "Synthesis: Learning",
        // 4 = 4 + 0
        "Moxie": "Synthesis: Style" // 3 = 4 + 4
  
      };
    } else if (buffType === "item") {
      var buffNames = {
        "Muscle": "Synthesis: Collection",
        // 1 = 3 + 3
        "Mysticality": "Synthesis: Collection",
        "Moxie": "Synthesis: Collection"
      };
    } else {
      throw "Unknown Sweet Synthesis buff type ".concat(buffType);
    }
  
    var buffName = buffNames[getPrimestat()];
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["", ""])), buffName))) {
      var chosenCandies = getCandy(buffType);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Chosen candies for ".concat(buffName, ": \n               ").concat(chosenCandies[0], ", ").concat(chosenCandies[1]));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.sweetSynthesis)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["", ""])), chosenCandies[0]), (0,libram__WEBPACK_IMPORTED_MODULE_1__.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["", ""])), chosenCandies[1]));
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_1__.have)((0,libram__WEBPACK_IMPORTED_MODULE_1__.$effect)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["", ""])), buffName))) {
      throw "Failed to get sweet synthesis buff ".concat(buffName);
    }
  }
  function main(buffType) {
    synth(buffType);
  }
  
  /***/ }),
  
  /***/ "./src/toot.ts":
  /*!*********************!*\
    !*** ./src/toot.ts ***!
    \*********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "main": () => (/* binding */ main),
  /* harmony export */   "toot": () => (/* binding */ toot)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  function visit() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Visiting toot ...");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.visitUrl)("tutorial.php?action=toot");
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.tryUse)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject || (_templateObject = _taggedTemplateLiteral(["letter from King Ralph XI"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.tryUse)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["pork elf goodies sack"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Selling gems ...");
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)(5, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["baconstone"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)(5, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["hamethyst"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.autosell)(5, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["porquoise"])))); //autosell(Math.max(availableAmount($item`porquoise`)-1,0), $item`porquoise`);
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Done at toot");
  }
  
  function main() {
    visit();
  }
  function toot() {
    main();
  }
  
  /***/ }),
  
  /***/ "./src/weapon.ts":
  /*!***********************!*\
    !*** ./src/weapon.ts ***!
    \***********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "default": () => (/* binding */ weaponTest),
  /* harmony export */   "main": () => (/* binding */ main)
  /* harmony export */ });
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! kolmafia */ "kolmafia");
  /* harmony import */ var kolmafia__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(kolmafia__WEBPACK_IMPORTED_MODULE_0__);
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! libram */ "./node_modules/libram/dist/index.js");
  /* harmony import */ var libram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(libram__WEBPACK_IMPORTED_MODULE_2__);
  /* harmony import */ var _phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./phredhccs-lib */ "./src/phredhccs-lib.ts");
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56, _templateObject57, _templateObject58, _templateObject59, _templateObject60, _templateObject61, _templateObject62, _templateObject63, _templateObject64, _templateObject65;
  
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
  
  
  
  
  
  var predictor = function predictor() {
    return 60 - Math.floor((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("weapon damage") / 25 + 0.001) - Math.floor((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.numericModifier)("weapon damage percent") / 25 + 0.001);
  };
  
  function faxUngulith() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_photocopyUsed")) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // ensure saber
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject || (_templateObject = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"])))); // and no Kramco
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["offhand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["familiar scrapbook"]))));
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Meteor Shower"])))).skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Use the Force"])))).setAutoAttack();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.fax)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$monster)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["ungulith"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["photocopied monster"])))); //        if (handlingChoice()) runChoice(-1);
  
      (0,libram__WEBPACK_IMPORTED_MODULE_2__.set)("_meteorShowerUses", 1 + (0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_meteorShowerUses"));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["corrupted marrow"]))));
    }
  }
  
  function ungulith() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["Cowrruption"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)(); // ensure saber in case this all breaks
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["Fourth of May Cosplay Saber"])))); // ensure extinguisher for polar
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["offhand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["industrial fire extinguisher"])))); // make sure we can free run
  
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["Frumious Bandersnatch"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["Ode to Booze"]))));
      libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["Fire Extinguisher: Polar Vortex"])))).step("runaway").setAutoAttack();
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.reminisce)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$monster)(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["Ungulith"]))));
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
  
      if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["corrupted marrow"]))))) {
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["corrupted marrow"]))));
      } else {
        throw "Failed to get corrupted marrow";
      }
    }
  }
  
  function castBuffs() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["Song of the North"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["Carol of the Bulls"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["Billiards Belligerence"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["Frenzied, Bloody"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["Lack of Body-Building"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["Jackasses' Symphony of Destruction"]))));
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["LOV Elixir #3"]))))) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["LOV Elixir #3"]))));
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.tryHead)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["Lack of Body-Building"]))));
  }
  
  function getCrushed() {
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["Do You Crush What I Crush?"]))))) {
      if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["Holiday Yoked"]))))) {
        (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.md_uniform)();
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useFamiliar)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$familiar)(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["Ghost of Crimbo Carols"]))));
  
        if ((0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.horsery)().includes("pale")) {
          (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.horse)("dark");
        }
  
        (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.advMacroAA)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$location)(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["The Dire Warren"]))), libram__WEBPACK_IMPORTED_MODULE_2__.Macro.skill((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["Snokebomb"])))));
        (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.setAutoAttack)(0);
      }
    }
  }
  
  function getCowrruption() {
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.pullIfPossible)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["corrupted marrow"]))), 3000);
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["corrupted marrow"]))))) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["corrupted marrow"]))));
  }
  
  function testPrep() {
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["hat"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral(["porkpie-mounted popper"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral(["shirt"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral(["fresh coat of paint"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral(["pants"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral(["Cargo Cultist Shorts"]))));
  
    if ((0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral(["fish hatchet"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral(["fish hatchet"]))));
    } else {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('fold broken champagne bottle');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral(["weapon"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject48 || (_templateObject48 = _taggedTemplateLiteral(["broken champagne bottle"]))));
    }
  
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject49 || (_templateObject49 = _taggedTemplateLiteral(["off-hand"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject50 || (_templateObject50 = _taggedTemplateLiteral(["ebony epee"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject51 || (_templateObject51 = _taggedTemplateLiteral(["acc1"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject52 || (_templateObject52 = _taggedTemplateLiteral(["Kremlin's Greatest Briefcase"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject53 || (_templateObject53 = _taggedTemplateLiteral(["acc2"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject54 || (_templateObject54 = _taggedTemplateLiteral(["Powerful Glove"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject55 || (_templateObject55 = _taggedTemplateLiteral(["acc3"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject56 || (_templateObject56 = _taggedTemplateLiteral(["Beach Comb"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.equip)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$slot)(_templateObject57 || (_templateObject57 = _taggedTemplateLiteral(["back"]))), (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject58 || (_templateObject58 = _taggedTemplateLiteral(["protonic accelerator pack"]))));
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('boombox fists');
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject59 || (_templateObject59 = _taggedTemplateLiteral(["Rictus of Yeg"]))))) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecute)('cargo pick 284');
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.use)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject60 || (_templateObject60 = _taggedTemplateLiteral(["Yeg's Motel toothbrush"]))));
    } // Tea party
  
  
    if (!(0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.getPropertyBoolean)('_madTeaParty')) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureItem)(1, (0,libram__WEBPACK_IMPORTED_MODULE_2__.$item)(_templateObject61 || (_templateObject61 = _taggedTemplateLiteral(["goofily-plumed helmet"]))));
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.ensureEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject62 || (_templateObject62 = _taggedTemplateLiteral(["Weapon of Mass Destruction"]))));
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.have)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject63 || (_templateObject63 = _taggedTemplateLiteral(["Outer Wolf\u2122"]))))) {
      (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.wishEffect)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$effect)(_templateObject64 || (_templateObject64 = _taggedTemplateLiteral(["Outer Wolf\u2122"]))));
    }
  
    if (!(0,libram__WEBPACK_IMPORTED_MODULE_2__.get)("_bowleggedSwaggerUsed")) (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.useSkill)((0,libram__WEBPACK_IMPORTED_MODULE_2__.$skill)(_templateObject65 || (_templateObject65 = _taggedTemplateLiteral(["Bow-Legged Swagger"]))));
  }
  
  function weaponTest() {
    castBuffs();
    getCrushed(); //getCowrruption();
  
    ungulith(); // can combine this with shower?
  
    (0,_phredhccs_lib__WEBPACK_IMPORTED_MODULE_1__.takeAShower)();
    testPrep();
    (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.logprint)((0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.cliExecuteOutput)("modtrace weapon"));
  
    if (predictor() > 1) {
      (0,kolmafia__WEBPACK_IMPORTED_MODULE_0__.print)("Weapon damage predicted ".concat(predictor()));
      throw "Failed to cap weapon damage at 1";
    }
  
    return predictor();
  }
  function main() {
    weaponTest();
  }
  
  /***/ }),
  
  /***/ "kolmafia":
  /*!***************************!*\
    !*** external "kolmafia" ***!
    \***************************/
  /***/ ((module) => {
  
  "use strict";
  module.exports = require("kolmafia");
  
  /***/ })
  
  /******/ 	});
  /************************************************************************/
  /******/ 	// The module cache
  /******/ 	var __webpack_module_cache__ = {};
  /******/ 	
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/ 		// Check if module is in cache
  /******/ 		var cachedModule = __webpack_module_cache__[moduleId];
  /******/ 		if (cachedModule !== undefined) {
  /******/ 			return cachedModule.exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = __webpack_module_cache__[moduleId] = {
  /******/ 			id: moduleId,
  /******/ 			loaded: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/ 	
  /******/ 		// Execute the module function
  /******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
  /******/ 	
  /******/ 		// Flag the module as loaded
  /******/ 		module.loaded = true;
  /******/ 	
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/ 	
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = __webpack_module_cache__;
  /******/ 	
  /************************************************************************/
  /******/ 	/* webpack/runtime/compat get default export */
  /******/ 	(() => {
  /******/ 		// getDefaultExport function for compatibility with non-harmony modules
  /******/ 		__webpack_require__.n = (module) => {
  /******/ 			var getter = module && module.__esModule ?
  /******/ 				() => (module['default']) :
  /******/ 				() => (module);
  /******/ 			__webpack_require__.d(getter, { a: getter });
  /******/ 			return getter;
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/define property getters */
  /******/ 	(() => {
  /******/ 		// define getter functions for harmony exports
  /******/ 		__webpack_require__.d = (exports, definition) => {
  /******/ 			for(var key in definition) {
  /******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  /******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  /******/ 				}
  /******/ 			}
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/global */
  /******/ 	(() => {
  /******/ 		__webpack_require__.g = (function() {
  /******/ 			if (typeof globalThis === 'object') return globalThis;
  /******/ 			try {
  /******/ 				return this || new Function('return this')();
  /******/ 			} catch (e) {
  /******/ 				if (typeof window === 'object') return window;
  /******/ 			}
  /******/ 		})();
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/hasOwnProperty shorthand */
  /******/ 	(() => {
  /******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/make namespace object */
  /******/ 	(() => {
  /******/ 		// define __esModule on exports
  /******/ 		__webpack_require__.r = (exports) => {
  /******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 			}
  /******/ 			Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/node module decorator */
  /******/ 	(() => {
  /******/ 		__webpack_require__.nmd = (module) => {
  /******/ 			module.paths = [];
  /******/ 			if (!module.children) module.children = [];
  /******/ 			return module;
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /************************************************************************/
  /******/ 	
  /******/ 	// module cache are used so entry inlining is disabled
  /******/ 	// startup
  /******/ 	// Load entry module and return exports
  /******/ 	var __webpack_exports__ = __webpack_require__(__webpack_require__.s = "./src/index.ts");
  /******/ 	var __webpack_export_target__ = exports;
  /******/ 	for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i];
  /******/ 	if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true });
  /******/ 	
  /******/ })()
  ;